其他分享
首页 > 其他分享> > pandas学习笔记2

pandas学习笔记2

作者:互联网

1、筛选用法 loc、where
    • orgin_excel.loc[(orgin_excel['投资时间'].astype(str)  <'2020-10-01')&(orgin_excel['数据状态'].isnull())&(orgin_excel['数据源'].str.contains('调研')),'数据状态']='删除'          • orgin_excel['删除理由']=np.where((orgin_excel['数据状态'] =='重复删除'), '问卷填写重复',orgin_excel['删除理由'])          • diaoyan_money234.loc[:,'New_ID_x']=diaoyan_money234['New_ID_x'].reindex_like(diaoyan_money234['New_ID_y'])
    • df.query('column1 > 2 and column 2<1')          • DataFrame.filter(items=None, like=None, regex=None, axis=None)          • df1=df.groupby('district').filter(lambda x: x['age'].mean()>20)     结果会将所有age>20的district的行选掉,返回所有其他值。      2、去重用法
    • orgin_excel['数据状态']=np.where(orgin_excel.duplicated(subset=['排名用全称','受资方全称','投资时间','基金全称','投资币种','投资金额(M)','数据源'],keep='first') &(orgin_excel['数据源'].str.contains('调研')), '重复删除',orgin_excel['数据状态']) 用法:DataFrame.duplicated(subset=None, keep='first')
    • orgin_res2 = orgin_res1.groupby(['排名用全称','受资方全称','投资时间_x']).filter(lambda x: len(x) > 1)
3、字符转换 整列转字符: orgin_excel['New_ID']=orgin_excel['New_ID'].map(str) 时间转整型 orgin_res1=orgin_res.loc[(orgin_res['投资时间_x']-orgin_res['投资时间_y']).astype('timedelta64[D]').astype(float).abs()<=90]
4、去重取条数 groupby count     • diaoyan_org_row=orgin_excel.loc[(orgin_excel['数据源'].str.contains('调研'))&(orgin_excel['数据状态'].isna())].groupby(['排名用全称','受资方全称','投资时间']).agg({'New_ID': ','.join,"条数" : "size"})
    • diaoyan_org_list=orgin_excel.loc[orgin_excel['数据源'].str.contains('调研') & orgin_excel['数据状态'].isnull()==True].groupby(['排名用全称','受资方全称','投资时间']).size().reset_index(name='counts')
    1. count:size     2. Groupby  concat :.agg({'New_ID': ','.join}     3. Count 列重命名 .size().reset_index(name='counts')
5、关联
    • orgin_rows=pd.merge(diaoyan_row_org1,simutong_row_org1,on=['排名用全称','受资方全称'],how='inner') 用法:pd.merge(DateFrame1,DateFrame2,on = ' ',how = ' ')
关联并取自己想要的字段     • diaoyan_jijin=pd.merge(orgin_excel,diaoyan_org_jijin,on=['New_ID','排名用全称','受资方全称','投资时间'],how='inner')[['排名用全称','受资方全称','投资时间','条数_y','New_ID','基金全称']] 关联并重置索引     • orgin_jijin=pd.merge(diaoyan_jijin,simutong_jijin,on=['排名用全称','受资方全称','条数_y'],how='inner').reset_index()
6、包含 contains 单个字段值包含某个字符串     orgin_money2['来源详情'].str.contains('问卷') 取反     orgin_money2['来源详情'].str.contains('问卷')==False
Isin     • new = data["Gender"].isin(["Male"]) 
用法:DataFrame.isin(values) (可整列使用)
7、空值处理     • 增加一列空值     orgin_excel['数据状态']=None     • 筛选空值     1. Isna() isnull()     2. notna() notnull()
特别想说 刚学习pandas的时候 什么也不会 连怎么取两列都不知道 在此特将方法贡献给和我一样的小菜鸟们 XX[['me','you']]

标签:diaoyan,全称,excel,笔记,学习,str,资方,pandas,orgin
来源: https://www.cnblogs.com/mollyliu/p/15357345.html