返回一个布尔值列表,比较Pandas中列表的行

时间:2017-08-01 20:45:59

标签: python pandas

我想添加一个新列' y'在我的数据框中是真是假。 它将返回一个真值如果下一行大于单个列的前一行。 例如,如果我有一个名为' X'

的列
X  y
1  
2  True
3  True
2  False

如果没有foor循环,我该怎么做呢。第一行y如何解决这个问题是空白的?

2 个答案:

答案 0 :(得分:3)

df.assign(y=df.X.diff().gt(0))

   X      y
0  1  False
1  2   True
2  3   True
3  2  False

如果你想迂腐,并且在第一个地方有一个空白

df.assign(y=pd.Series(np.diff(df.X) > 0, df.index[1:]))

   X      y
0  1    NaN
1  2   True
2  3   True
3  2  False

答案 1 :(得分:3)

In [63]: df['y'] = df.X > df.X.shift()

In [64]: df
Out[64]:
   X      y
0  1  False
1  2   True
2  3   True
3  2  False