Pandas用途
高效处理结构化数据,方便于数据导入、清理、建模、可视化。
- 缺失数据的处理
- 数据的插入删除
- 分组聚合查询
- 切片、索引、截取
- 合并、连接数据
- ...
Pandas常见用法
导入、导出数据
参考
pd.readcsv()
pd.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer', names=None, index_col=None, prefix=None, encoding=None)
delimiter: 定界符,备选分隔符(如果指定该参数,则sep参数失效)
header: 默认设置为0(即第一行作为表头),如果没有表头的话,要修改参数,设置header=None
names:一般我们没有表头,即header=None时,这个用来添加列名
prefix:给列名添加前缀
pd.tocsv()
pd.tocsv(filepath_or_buffer, sep=',', na_rep=None, columns=None,
header=0, index=True)
na_rep: 字符串,将NaN转换为特定值
columns: 列表,指定哪些列写进去
index: 关于索引的,默认True,写入索引
查看数据
# 顶部
df.head()
# 概览,默认只describe数值型列;
df.describe(include='all')
# 按轴排序
df.sort_index(axis=0, ascending=False)
# 按值排序
df.sort_value(by='column3')
选择数据(过滤数据实用!)
# df.column3
df['column3']
# 切片, 行列切片
df[0:3,5:10]
# 按标签选择
df.loc[;,['A', 'B']]
# 按位置选择,按照隐藏索引选择
df.iloc[0:5, 0:2]
# 过滤数据, 类似于sql的条件查询
df[df['columnA'] > 0]
# isin方法过滤
df[df['columnA'].isin(['1', '2', '10'])]
缺失值处理
# 只要行列出现空缺值,就删除;
df.dropna(how='any')
# 当整个行或列出现NaN就删除;
df.dropna(how='all')
# 填充缺失值
df.fillna(value='missing')
数据操作
# apply应用, 需要传递一个func
df.apply(lambda x: x.max() - x.min())
# 针对当前列的值进行统计计数
df['columnA'].value_counts()
合并数据
# 左连接,合并两个相同id的df表格,以左边的为基准;(类似于sql的左连接)
pd.merge(left_df, right_df, on='_id', how='left')
分组
# 分组求和,常用级别
df.groupby('columnA').sum()
绘图
df.plot.bar(df['columnA'])
plt.figure()
plt.legend()
更多参考:中文官网