我想添加一个新列' y'在我的数据框中是真是假。 它将返回一个真值如果下一行大于单个列的前一行。 例如,如果我有一个名为' X'
的列X y
1
2 True
3 True
2 False
如果没有foor循环,我该怎么做呢。第一行y如何解决这个问题是空白的?
答案 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