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. 判断字段存在
24. 筛选特定类型的字段名
1
|
list(df[feature_names].select_dtypes(include=['int','float','int32','float32','int64','float64']).columns.values)
|