熊猫根据行值(条件)创建新列

时间:2018-07-12 05:40:55

标签: python pandas

我有一个这样的列

A
1.0
1.0
2.0
3.0
4.0
5.0
5.0
5.0

我需要根据条件创建一个新列,如果a [i]和a [i-1]相同,则值为0,否则为1。

结果应如下所示:

A       B
1.0     1
1.0     0
2.0     1
3.0     1   
4.0     1
5.0     1   
5.0     0   
5.0     0

正确的熊猫方法吗?

1 个答案:

答案 0 :(得分:5)

通过neSeries的{​​{3}}创建不相等的布尔掩码,并强制转换为integer

df['B'] = df['A'].ne(df['A'].shift()).astype(int)
print (df)
     A  B
0  1.0  1
1  1.0  0
2  2.0  1
3  3.0  1
4  4.0  1
5  5.0  1
6  5.0  0
7  5.0  0

详细信息

print (df['A'].ne(df['A'].shift()))
0     True
1    False
2     True
3     True
4     True
5     True
6    False
7    False
Name: A, dtype: bool