VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > python入门教程 >
  • 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']]

出处:https://www.cnblogs.com/mollyliu/p/15357345.html

相关教程