【发布时间】:2021-08-27 11:43:49
【问题描述】:
我有一个这样的数据框
L_1 D_1 L_2 D_2 L_3 D_3 C_N
1 Boy Boy||
1 Boy 1-1 play Boy|play|
1 Boy 1-1 play 1-1-21 car Boy|play|car
1 Boy 1-1 play 1-1-1 online Boy|play|online
2 Girl Girl||
2 Girl 2-1 dance Girl|dance|
我已经使用代码创建了C_N 选项卡
df['C_N'] = df[['D_1','D_2', 'D_3']].apply(lambda x: '|'.join(x), axis=1)
现在我想要另一列,我也可以在其中获取特定组的 ID,我的理想输出是:
L_1 D_1 L_2 D_2 L_3 D_3 IDs C_N
1 Boy 1 Boy||
1 Boy 1-1 play 1-1 Boy|play|
1 Boy 1-1 play 1-1-21 car 1-1-21 Boy|play|car
1 Boy 1-1 play 1-1-1 online 1-1-1 Boy|play|online
2 Girl 2 Girl||
2 Girl 2-1 dance 2-1 Girl|dance|
谁能帮助我解决这个问题。提前谢谢!
【问题讨论】:
-
所以您只想为男孩填写 1,为女孩填写 2?
-
前 6 列中可用的最后一个 ID 是什么。如您所见,有些地方我们需要从
L_1 and some places L_2 and some IDs are coming out of L_3中获取值,我需要获取主ID -
df['IDs'] = df['L_3'].fillna(df['L_2']).fillna(df['L_1']) -
也许您可以创建一个自定义函数,循环遍历 Id 列,检查值是否为 NaN,如果不是,则返回该 Id。然后你把这个函数放在
apply()方法中,你应该得到你的列IDs
标签: python python-3.x pandas dataframe python-2.7