熊猫用其他价值创造新的一栏

时间:2020-09-29 08:04:59

标签: pandas numpy dataframe logic

希望一切都好,谢谢您的时间和帮助。

我的问题是:

我想基于以下内容在数据框中创建新列: 如果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

1 个答案:

答案 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