繁体   English   中英

创建一个以其他列值为条件的熊猫列

[英]Creating a pandas column conditional to another columns values

我正在尝试在pandas数据框中创建一个条件列,该条件列的条件是其他列的值。 如果另一列的i + 1值大于i值,则该值为1,否则为0。

例如:

column1 column2
   5       1
   6       0
   3       0
   2       1
   4       0

如何通过遍历column1来创建column2?

您可以在周期为-1的第一列上使用diff方法,然后检查它是否小于零以创建第二列。

import pandas as pd

df = pd.DataFrame({'c1': [5,6,3,2,4]})
df['c2'] = (df.c1.diff(-1) < 0).astype(int)

df
# returns:
   c1  c2
0   5   1
1   6   0
2   3   0
3   2   1
4   4   0

您也可以使用shift 性能几乎与diff相同,但是diff似乎要快一点。

df = pd.DataFrame({'column1': [5,6,3,2,4]})
df['column2'] = (df['column1'] <df['column1'].shift(-1)).astype(int)
print(df)
   column1  column2
0        5        1
1        6        0
2        3        0
3        2        1
4        4        0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM