Python 返回一个布尔值列表,该值比较列表中的行
我想在我的数据框中添加一个新的True和False列“y”。 如果下一行大于单个列的上一行,则返回真值。 例如,如果我有一个名为“X”的列Python 返回一个布尔值列表,该值比较列表中的行,python,pandas,Python,Pandas,我想在我的数据框中添加一个新的True和False列“y”。 如果下一行大于单个列的上一行,则返回真值。 例如,如果我有一个名为“X”的列 X y 1 2 True 3 True 2 False 在没有foor循环的情况下,我如何做到这一点。如何解决y的第一行为空的问题 df.assign(y=df.X.diff().gt(0)) X y 0 1 False 1 2 True 2 3 True 3 2 False 如果你想学究气,第一个位置
X y
1
2 True
3 True
2 False
在没有foor循环的情况下,我如何做到这一点。如何解决y的第一行为空的问题
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
很难找到更好的解决方案…;-)我相信“盗版解决方案更好,所以请考虑接受他的回答……-”你的建议也不错,不过我会尊重你的建议。
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