描述:
- pandas是Python一个计算科学的库,适合做数据处理一个库,最近工作常用到的一些方法记录
- 官方文档http://pandas.pydata.org/pandas-docs/stable/10min.html
导入模块
import pandas as pd
读取文件
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html#pandas.read_csv
# 一次加载数据
pd.read_csv(文件路径)
# 分批加载数据(设置chunksize参数)
df = pd.read_csv(文件路径, chunksize=1000)
for i in df:
# 获取1000行的Dataframe数据
print(i)
# 分批加载数据(设置iterator参数)
df = pd.read_csv(文件路径, iterator = True)
# 可带参数,获取几行,get_chunk获取数据方式同样适合上面的
print(df.get_chunk(10))
写入文件
df_out.to_csv(文件路径, quoting=1, index=False, float_format='%.2f')
- sep 分隔符,默认“,”
- quoting 输入文件时,数据强制转换为字符串
- index 是否将索引写入文件,False不写入,True写入,默认为True
- header 是否保留字段名称,False不保留,True保留,默认为True
- na_rep 空值处理,默认为空
- float_format 浮点数处理
- columns 列的输出,默认全部输出,columns =['name'] 只输出某一列
- mode 输入方式,默认为w,可以改为追加方式a
- encoding 编码格式
- chunksize 一次写入行数
合并表格
http://pandas.pydata.org/pandas-docs/stable/merging.html#merging
df1 = pd.read_csv(文件1)
df2 = pd.read_csv(文件2)
# 两个表根据某个字段进行合并
df_out = pd.merge(left=df1, right=df2, on='index', how='left')
分组聚合
http://pandas.pydata.org/pandas-docs/stable/groupby.html
# 以md_tel字段分组,计算出各个字段分组总值,最大值,最小值,数量,平均值
df_out['goods_num'] = df.groupby('md_tel').sum()['goods_num']
df_out['last_day'] = df.groupby('md_tel').max()['order_time']
df_out['first_day'] = df.groupby('md_tel').min()['order_time']
df_out['buy_times'] = df.groupby('md_tel').count()['order_id']
df_out['sentiment'] = df.groupby('md_tel').mean()['sentiment']
函数应用
df_out['keywords'] = df_out['keywords'].apply(函数名)