pandas常用操作(随时更新)
1.时间处理
格式化时间
pd.to_datetime(),其中输入一个时间形式的str或者一列数据都行。如,
pd.to_datetime('2016/1/1')、pd.to_datetime(df['receivetime'])。
生成时间序列
pd.date_range(),其中主要输入的参数,起止时间或序列长度、间隔。如,
pd.date_range(start='1/1/2016 00:00:00', end='1/1/2017 00:00:00', freq=str(60*15)+'s')。
时间加减
pd.Timestamp("2015-01-01") - pd.offsets.Day(1)
2.行列操作
删除空行
df.dropna(),可以选择某一列,也可以全选,删掉的是空行一整行。
df.drop(),删除指定行。
排序
df.sort_values(by='name'),根据name这一列进行排序
df.sort_values(by=['name1','name2]),先根据name1进行排序,然后再根据name2排序
3.合并DF
merge:类似于SQL的join操作
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True, suffixes=('_x', '_y'), copy=True, indicator=False)
left,right——需要合并的两个列表;
on——连接两个表的key(主键)的列名,如果该列在两个表的列名不同,使用left_on,right_on,如果直接使用index作为作为连接键的话,用左边的行索引则设置left_index=True,用右边的行索引则设置right_index=True;
how——连接方式,默认inner,表示取交集,outer取并集,left为左连接,right为右连接。
suffixes——如果组合后的DataFrame有重复的名称,附加的列名后缀,默认为_x,_y;
join:简化版的merge操作
df.join(self, other, on=None, how='left', lsuffix='', rsuffix='',sort=False)
concat:沿着轴线方向堆叠列表
pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, copy=True)
axis=0时为竖向拼接,axis=1时为横向连接
4.读/存文件
存多个sheet
a = pd.DataFrame([],columns=['a','b']) b = pd.DataFrame([],columns=['c','d']) excel_writer = pd.ExcelWriter('test.xls') a.to_excel(excel_writer,sheet_name='a') b.to_excel(excel_writer,sheet_name='b')
5.筛选数据
df[(min_time <= a) & (a <= max_time)] 如果多个条件,用&不用and