我已经尝试了很多东西( map 、过滤器、连接),但似乎没有任何效果。 下表最好地描述了我正在尝试做的事情:(我需要获得“必填”列)
colA colB colC ref required
1 a1 b1 c1 colA a1
2 a2 b2 c2 colA a2
3 a3 b3 c3 colB b3
4 a4 b4 c4 colB b4
5 a5 b5 c5 colC c5
6 a6 b6 c6 colC c6
上面只是一个例子——在真实的例子中我有 >50 列,所以做条件是行不通的......
有什么建议如何做到这一点?
最佳答案
如果我对你的问题的理解正确,下面的apply
就可以解决问题:
# Starting DataFrame:
>>> df
colA colB colC ref
1 a1 b1 c1 colA
2 a2 b2 c2 colA
3 a3 b3 c3 colB
4 a4 b4 c4 colB
5 a5 b5 c5 colC
6 a6 b6 c6 colC
df['required'] = df.apply(lambda x: x.loc[x.ref], axis=1)
# Final DataFrame:
>>> df
colA colB colC ref required
1 a1 b1 c1 colA a1
2 a2 b2 c2 colA a2
3 a3 b3 c3 colB b3
4 a4 b4 c4 colB b4
5 a5 b5 c5 colC c5
6 a6 b6 c6 colC c6
关于python - Pandas - 根据另一列中引用的列名创建列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50915610/