pandas常用操作一

DataFame:

参考链接:http://pandas.pydata.org/pandas-docs/stable/tutorials.html

df_data = pd.read_csv(path + '\\' + deletefile, sep=',')[:-2] #以分隔符逗号读取数据,并移除倒数第二行

 

na_values = ['NO CLUE', 'N/A', '0'] requests = pd.read_csv('../data/311-service-requests.csv', na_values=na_values, dtype={'Incident Zip': str}) #读取文档时,过滤掉空值,将某列的类型读取成str

rows_with_dashes = requests['Incident Zip'].str.contains('-').fillna(False) #判断某列是否包含破折号字符串,并用False替换DataFame对象中所有的空值 len(requests[rows_with_dashes]) #读取满足rows_with_dashes 的行数

requests[rows_with_dashes] # 读取满足rows_with_dashes 的所有行,为DataFame形式

long_zip_codes = requests['Incident Zip'].str.len() > 5 #选择某列字符串长度大于5的DF requests['Incident Zip'][long_zip_codes].unique() #将某列中选取的字符串大于5的DF显示

requests['Incident Zip'] = requests['Incident Zip'].str.slice(0, 5) #slice(0, 5)数组、字符串位置截取;数组、字符串均可使用;参数一:开始截取的下标;参数二:截取的截止位置但不包含该下标;返回截取的新数组。

df_data = pd.read_csv(path + '\\' + deletefile)

  • df_data['bug'][:3] #某列的前三行 ,等价于df_data[:3]['bug']
  • df_data[['ca','bug']][:3] #某n列的前三行
  • df_data[::2 ] #从前往后每隔两个取数据
  • df_data[::-2 ] #从后往前逆序每隔两个取数据
  • df_data + df_data[::2 ] # 自动对齐数据
  • df_data[:3] #前三行
  • #观察到csv文件的格式乱了,因此,修改读取csv文件时的参数。
  • fixed_df = pd.read_csv('../data/bikes.csv', sep=';', encoding='latin1', parse_dates=['Date'], dayfirst=True, index_col='Date') #以分号为分隔符,编码是latin文而不是默认的utf-8,解析‘Date’列中的日期,并约定起始是第一天而不是第一个月,将‘Date’列设置为行索引。 fixed_df[:3]
  • len(df_data) #统计每个文件的数据集个数
  • df_data['bug'].nunique() #统计每个文件bug的类别总数
  • df_data['bug'].unique()#统计每个文件bug的各个类别
  • bug_class_value = df_data['bug'].value_counts() # 统计每个文件bug的不同类别名及对应的个数,并降序排列
  • bug_value[: 10].plot(kind='bar') #统计排名top10的类别并绘出柱形图
  • bug_counts = df_data.groupby('bug').aggregate(sum) #将数据按bug列不同的数据分组,并按分组相加其他列,其中按照bug的类别升序排列。
  •  
  • df_data['bug'].plot() #选择某列'bug'并画出曲线
  • df_data.plot(figsize=(15, 10)) #将所有的列值都画在15*10的图中,等价于df = pd.read_csv('../data/bikes.csv', sep=';', encoding='latin1', parse_dates=['Date'], dayfirst=True, index_col='Date') .plot(figsize=(15, 10))
  •  

  • ’‘’关于保存‘

    df.to_csv('DimDate.csv', index=False)

    df.to_excel('DimDate.xls', index=False)

    df.to_csv('DimDate.txt', index=False)

    df_data.to_csv(r"*\test.csv", header=False, index=False) #保存时,隐藏行名和列名

    pd.DataFrame({'col2': [3, 4], 'col4': [1, 2]}, columns=["col4","col2","col1"]) #保证列名按指定顺序保存,若列名中的字符串不存在,将自动赋值为NAN

参考链接:http://pandas.pydata.org/pandas-docs/stable/tutorials.html

由于笔者也是初学者,希望记录分享,以便方便学习,如有错误,欢迎批评指正,谢谢!

### Pandas库的常用版本及其兼容性 Pandas种广泛使用的数据处理工具,其不同版本可能具有不同的特性和兼容性需求。以下是关于 Pandas 常用版本的些说明: #### 1. 版本概述 目前常用Pandas 版本主要包括 `1.x` 和 `2.x` 系列。这些版本通常与 Python 的高版本保持良好的兼容性,并引入了许多新特性以及性能优化。 - **Pandas 1.x 系列** 这版本系列自发布以来直被广泛应用,特别是在数据分析领域。它提供了许多基础功能的支持,例如 DataFrame 操作、时间序列分析等[^1]。 - **Pandas 2.x 系列** 随着技术的发展,Pandas 开发团队推出了新的主要版本——2.x 系列。这版本不仅修复了些长期存在的 bug,还增强了对大型数据集的操作能力,并改进了内存管理效率[^4]。 #### 2. 主要版本的功能更新与兼容性 以下是些重要版本的具体变化及兼容性描述: - **Pandas 1.0.0 及以上** - 正式支持 Parquet 文件格式读写操作,这依赖于外部库如 `pyarrow` 或者 `fastparquet` 来实现高效的数据存储和检索[^2]。 - 新增了更灵活的时间解析选项,允许通过指定 `{column_name: format_string}` 字典来定义特定列的时间格式转换逻辑[^3]。 - **Pandas 1.5.x** - 改进了分组聚合运算的速度表现。 - 对缺失值处理进行了多项增强,使得诸如重采样 (`resample`) 方法更加直观易用。 - **Pandas 2.0.x** - 提升了整体框架的稳定性并减少了资源消耗。 - 更好地适配最新版 NumPy 和其他科学计算生态组件的要求。 #### 3. 安装建议 为了确保最佳体验,在安装 Pandas 库之前应确认所运行环境中的 Python 是否满足最低要求(通常是 Python >= 3.8)。可以通过 pip 工具轻松完成安装或升级过程: ```bash pip install --upgrade pandas ``` 如果需要针对具体项目锁定某个稳定版本,则可以显式指明目标版本号,比如: ```bash pip install pandas==1.5.3 ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值