pandas 常用函数

Posted on 2019-05-13 15:42  飞行的蟒蛇  阅读(197)  评论(0编辑  收藏  举报

1.合并数据或表

df_user = pd.concat(list, axis=0, ignore_index=True)#list为数据

2.筛选

1) a=df[(df.可发库存 >= 15)]#可发库存为列名,df为数据
2) a = tcdd.loc[tcdd['订单状态'] == '已取消'] #loc为筛选函数

3) df=df[df['订单来源']=='接口抓取']

4) ys=cjdd[cjdd['平台规格名称'].str.contains('预')] #筛选包含预字的
5)day_1=az.loc[az['退款间隔_小时'].apply(lambda a : 0<=a<24)]#数字筛选
6) a=profit[profit.isnull().values==True]
7) api_trade[api_trade['售后分类'].isnull().values==True]

3.关联

df = pd.merge(df, kc[['商家时间', '可发库存']], how='left', on=['商家时间'])#表关联类似vlookup,“how=”是关联方式

4.分列

aa = pd.DataFrame((str(x).split(' ') for x in df['付款时间']), index=df.index, columns=['日期1', '付款时刻'])#付款时间分列,"columns=" 是分列后的列名

5.数据透视表

xshz=pd.pivot_table(xs,index=['广告位名称'],values=["商品数",'商品单价'],aggfunc=[sum])

 pd.pivot_table(df,index=["Manager","Status"],columns=["Product"],values=["Quantity","Price"],aggfunc={"Quantity":len,"Price":np.sum},fill_value=0)

aa=pd.pivot_table(qq, index=["good_no"], values=["num", "share_amount"],
aggfunc=np.sum, fill_value=0)

aa=pd.pivot_table(data, index="key",columns="pr", values="LAYOUT",
aggfunc=np.sum, fill_value=0)

xshz=xshz.reset_index()#重置索引,一般和透视表关联都要这样做

cgzs["采购总数"]=cgzs["sum"]["采购总数"]
 c = a.groupby(['area', 'sex']).agg({'sale': np.sum}) 

aa=pd.pivot_table(data, index="key",columns="pr", values="LAYOUT",
aggfunc=np.sum, fill_value=0) #行转列

6.删除重复值

drop_duplicates()

kc.drop_duplicates(subset='商家时间', keep='first', inplace=True)#删除库存重复值,保留第一个

7.该列名

rename()

df.rename(columns={'子单原始单号':'原始单号'},inplace=True)

8.删除

遍历数据删除带有“预”字的那一列,效率较低
for i  in az.index:
    if ''   in az['平台规格名称'].at[i]:
        az.drop(i, axis=0, inplace=True)

9.修改数据

1.for i in df.index:
    if df['支付时间'].at[i]==0:
        pass
    else: 
        df['付款时间'].at[i]=df['支付时间'].at[i]
2.df['平台规格名称'].fillna('无',inplace=True)#填充空值

10.日期处理

1.日期相减
az['退款间隔']=pd.to_datetime(az['申请退款时间']) -pd.to_datetime(az['付款时间'])
az['退款间隔_小时']=az['退款间隔']/np.timedelta64(1, 'h')#时间间隔转为小时

 11.替换

qq['api_goods_name'] = qq['api_goods_name'].str.replace(r"\'","")
//如果要替换指定的字符要加    .str

 12.获取列名

df.columns