1. 按照某一列去重

1
df.drop_duplicates(subset='user_id', inplace=True)

2. 条件筛选:某一列不在另一个表

1
df[~df.user_id.isin(df1.user_id.to_list())]

3. 条件筛选:某一列值为空

1
df[df['credit_amount'].isnull()]

4. 合并俩表(左连接)

1
df2 = df0.merge(df1, on='user_id', how='left')

5. 导出到csv

1
df.to_csv('xxx.csv', index=False)

6. 多条件筛选

1
df[(df['A'] > df['B']) & (df['created_at'] < df['10月31日'])]

7. 修改列名points为score

1
df.rename(columns={'points': 'score'})

8. 修改索引

1
df.rename(index={0: 'firstEntry', 1: 'secondEntry'})

9. 修改axis

1
df.rename_axis("wines", axis='rows').rename_axis("fields", axis='columns')

10. 合并表格

1
pd.concat([canadian_youtube, british_youtube])

11. 将某个字段单列出来

1
2
res 字段是json 值为{'status': 0, msg: 'ok'}
df['status'] = df.apply(lambda df: json.loads(df['res'])["status"], axis=1)

12. 判断字段a是否有NaN

1
df['a'].isnull().sum() > 0

13. 聚合排序

按照 (user_id, sku) 出现的次数 排序

1
2
3
A = pd.DataFrame(df.groupby(['user_id', 'sku'])[['user_id', 'sku']].size().sort_values(ascending=False))
A.columns = ['user_beh_count']  # 修改列索引名称
beh_user = beh_user.reset_index()

14. 读取Excel

1
2
3
f = pd.ExcelFile('文件名.xlsx')
d = f.parse('SHEET名称')
d.head()

15. 遍历

1
2
3
4
data = pd.read_csv('mock_data/bj_test_data.csv').sample(100)

for idx, row in data.iterrows():
    pass

16. 条件筛选 & 选择字段

1
A.loc[A['flag'] == True, ('用户ID', '用户金额')]

17. nan处理

1
df['result'] = df['result'].apply(lambda x: '' if str(x)=='nan' else x)

18. 筛选某一字段的取值

1
2
df['flag'] = df['result'].apply(lambda x: 1 if x in ('hello', 'world') else 0)
df[df['flag']==1]

19. A的user_id在B的user_id中

1
2
A['flag'] = A.apply(lambda x: True if x['user_id'] in B.user_id.values else False, axis=1)
A[A['flag'] == True]

20. 空值转换

1
df["查看时间"] = df["查看时间"].apply(lambda x: str(x) if not pd.isnull(x) else "")

21. 类型转换

1
df['合同号'] = df['合同号'].apply(int)

22. 一列数据加到另一列List类型的数据中

1
df.apply(lambda x: x["查看时间列表"].append(x["查看时间"]) if not pd.isnull(x["查看时间"]) and x["查看时间"] != "" and x["查看时间"] not in x["查看时间列表"] else x["查看时间列表"], axis=1)

23. 判断字段存在

1
'xxx' in df.columns

24. 筛选特定类型的字段名

1
list(df[feature_names].select_dtypes(include=['int','float','int32','float32','int64','float64']).columns.values)