希望一切都好,谢谢您的时间和帮助。
我的问题是:
我想基于以下内容在数据框中创建新列: 如果df [“ A”]上的值== df [“ B”],则df [“ new”]是df [“ B”]
类似这样的东西:
A B C
100 100 colors
100 10021 Blue
100 10022 Red
.
.
.
200 200 Shape
200 20021 Square
200 20022 Circle
我需要的是一个新列,而在df [“ A”] == df [“ B”]时,df [“ new”] =颜色。.
A B C new
100 100 colors colors
100 10021 Blue colors
100 10022 Red colors
.
.
.
200 200 Shape shape
200 20021 Square shape
200 20022 Circle shape
答案 0 :(得分:1)
如果两个列中的相同值始终是组的第一位,则可以使用Series.where
来表示不相同值的缺失值,然后用ffill
进行填充:
df['new'] = df['C'].where((df["A"] == df ["B"])).ffill()
print (df)
A B C new
0 100 100 colors colors
1 100 10021 Blue colors
2 100 10022 Red colors
3 200 200 Shape Shape
4 200 20021 Square Shape
5 200 20022 Circle Shape