Pandas数据处理常用方法总结

Pandas 介绍

Pandas是基于Numpy创建的Python库,为Python提供了易于使用的数据结构数据分析的工具

Pandas 数据结构

1.Series -序列
储存任意类型的一维数组
在这里插入图片描述

2.DataFrame -数据框
储存不同类型数据的二维数组
在这里插入图片描述

Pandas 文件读写

import pandas as pd
# 从文件中读取数据
pd.read_csv()
pd.read_table()  # 从制表符分隔文件读取,如TSV
pd.read_excel()
pd.read_sql()
pd.read_json()

# 从数据写入文件
pd.to_csv()
pd.to_table()
pd.to_excel()
pd.to_sql()
pd.to_json()

Pandas 数据预处理

数据处理

import pandas as pd
# 1.查看数据情况
df = pd.read_csv()   # 读取CSV文件
df.head()
df.shape     # df.shape[0] -读取矩阵第一维度的长度(行的长度)
df.info()    # 样本数、数据类型和内存占用等信息
df.describe()   # 统计数据
df.count()
df.dtypes
df.isnull()
df['col'].unique()   # 去重复
df.index
df.columns
df.tail()

# 2.缺失值,异常值的处理
# 处理缺失值也可以从缺失率的角度出发,分别进行填补
df.fillna(0)
df.dropna()
df['col'].fillna(df['col'].mean()) # mode()--分类数据

# 3.对字符串和日期数据的处理(文字,地名)
df['col'] = df['col'].map(str.strip)
df['col'] = df['col'].str.lower()
df['col'].astype('int')  
df.rename(columns={'col': 'col1'})
df['col'].str.replace('\', '-')
df['col'].str.split('-')
# df['col'].join()
df['col'].drop_duplicates()   # 默认删除后出现的重复值 设置参数keep=‘last’删除前出现
df['date'] = pd.to_datetime(df['date'])
df['date'] = pd.date_range('2019-05-10',periods=6,freq='M')
# 输出(periods为周期)
>>> DatetimeIndex(['2019-05-31', '2019-06-30', '2019-07-31', '2019-08-31','2019-09-30', '2019-10-31'],dtype='datetime64[ns]', freq='M')

# 4.合并数据
```javascript
import pandas as pd
pd.merge(data1,data2,how='inner',on='id')  
pd.merge(data1,data2,how='left',on='id')        
pd.merge(data1,data2,how='right',on='id')
pd.merge(data1,data2,how='outer',on='id') 
data1.join(data2, how='right')
s1.append(s2)   # 纵向
pd.concat([data1,data2],axis=1, join='inner')

# 透视表
# 行变列
df = pd.pivot_table(df2,values='col',index='date',columns='type') 

# 创建透视表,根据'A'列的值进行分组,并计算每一组中'B''C'的均值
df.pivot_table(index='A',values=['B','C'],aggfunc=mean)

# 融合
pd.melt(df2,id_vars=['date'],value_vars=['Type','Value'],value_name=['col'])

# 对复合多个条件的数据进行分组标记
df.loc[(df['籍贯'] == '北京') & (df['年龄'] >= 22), 'sign']=1

# 对某一列值依次进行分列,产生新的列
pd.DataFrame((x.split('-') for x in df['col']),index=df.index,columns=['col1','col2']))

数据提取
loc函数按标签值进行提取,iloc按位置进行提取,ix可以同时按标签和位置进行提取
使用与、或、非条件配合比较运算符对数据进行筛选提取

import pandas as pd
df.loc[3]
df.iloc[0:5]
df[:'2019-05-10']  # 提取规定日期之前的数据
df.loc[:,(df>1).any()]  # 选择任意值大于1的列  .all()为所有值
df.loc[:,df.isnall().any()]
df.filter(items='a','b')
pd.DataFrame(category.str[:3])  # 提取前三个字符 ,并生成数据表

# 使用 & | !=
df.loc[(df['age'] > 25) & (df['city'] == 'beijing'), ['id','city','age','category','gender']]
df.loc[(df_inner['age'] > 25) | (df['city'] == 'beijing'), ['id','city','age','category','gender']].sort(['age']) 
df.loc[(df['city'] != 'beijing'), ['id','city','age','category','gender']].sort(['id']) 
df.loc[(df['city'] != 'beijing'), ['id','city','age','category','gender']].sort(['id']).city.count()
df.query('city == ["beijing", "shanghai"]').price.sum()

数据统计汇总

import pandas as pd
df.groupby('A').count()  # 根'A'列进行分组,对所有的列进行计数汇总
df.groupby('A')['id'].count()  # # 根'A'列进行分组,对['id']列进行计数汇总
df.groupby(['A','B'])['C'].mean()
df.groupby('A')['B'].agg([len,np.sum, np.mean]) 

weights = [0, 0.2, 0.3, 0.4, 0.5, 0.5]
df.sample(n=2, weights=weights)  # 按权重给数据采样
df.sample(n=3, replace=True)   # 又放回采样(replace=False时不放回采样)
df.cumsum()   # 累计
df.std()   # 标准差
df['A'].cov(df['B']) 
df.cov()    # 协方差矩阵
df.corr()   # 相关性系数矩阵
df.cut(s,bins[0, 5, 10], labels=['A','B'])  # 离散化
df.get_dummies(df, columns=['A'],drop_first=True)  # 对A列进行one-hot编码
df.rank()   # 数据框排名
df.sort_values() # by= ' ',可指定排序方式
df['A'].value_counts()  # A列按个数从大到小排序(可视化中常用)
df.apply()  # 后面可接内置函数、lambda函数、自定义函数
data['A'] = data['A'].apply(lambda x: x[6:10]) # 对A列每个元素进行处理

上面就是在学习和工作中遇到pandas的常用方法了,希望能对大家有帮助,若有问题请及时沟通,共同进步

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在进行Pandas数据处理的过程中,可以按照以下几个步骤进行: 1. 导入数据:首先需要导入Pandas库,使用`import pandas as pd`语句进行导入。然后可以使用`pd.read_xxx()`函数来读取不同格式的数据文件,如CSV、Excel等。\[1\] 2. 查看数据:可以使用`df.head()`函数来查看数据的前几行,默认显示前5行。也可以使用`df.tail()`函数来查看数据的后几行。\[1\] 3. 数据选取:可以使用`df\['column_name'\]`来选取某一列的数据,也可以使用`df.loc\[row_index, column_name\]`来选取某一行或某个单元格的数据。\[1\] 4. 数据处理:可以使用各种Pandas提供的函数和方法对数据进行处理,如数据清洗、缺失值处理、数据转换等。常用的函数包括`df.dropna()`、`df.fillna()`、`df.replace()`等。\[1\] 5. 数据分组和排序:可以使用`df.groupby()`函数对数据进行分组,然后使用聚合函数对每个组进行计算。可以使用`df.sort_values()`函数对数据进行排序。\[1\] 6. 数据合并:可以使用`pd.merge()`函数将不同DataFrame中的行连接起来,类似于数据库的join操作。可以根据一个或多个键进行连接。\[3\] 综上所述,Pandas数据处理的过程包括导入数据、查看数据、数据选取、数据处理、数据分组和排序以及数据合并等步骤。 #### 引用[.reference_title] - *1* [总结了这67个pandas函数,完美解决数据处理,拿来即用!](https://blog.csdn.net/weixin_41261833/article/details/115598697)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Pandas数据处理与分析](https://blog.csdn.net/qq_40195360/article/details/84570503)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值