我有以下数据框,索引为日期时间戳,我想在 p2>p1 将 p3('new column') 设置为 1 时创建一个额外的列,否则将其设置为 0。我不想必须循环。我尝试使用面具,但我没有正确使用:
p1 p2
2018-01-15 07:15:00 -1.0 0.4
2018-01-15 07:30:00 -1.0 0.4
2018-01-15 07:45:00 -3.0 0.4
2018-01-15 08:00:00 -3.0 0.3
2018-01-15 08:15:00 -2.0 0.3
2018-01-15 08:30:00 -2.0 0.3
2018-01-15 08:45:00 -2.0 0.2
2018-01-15 09:00:00 -2.7 0.1
2018-01-15 09:15:00 -2.7 0.0
2018-01-15 09:30:00 -2.7 0.0
2018-01-15 09:45:00 -3.7 0.3
2018-01-15 10:00:00 -3.0 0.3
2018-01-15 10:15:00 -2.0 0.3
2018-01-15 10:30:00 -1.0 0.3
最佳答案
您可以将 bool 掩码转换为整数,将 True
转换为 1
并将 False
转换为 0
:
df['p3'] = (df.p2>df.p1).astype(int)
print (df)
p1 p2 p3
2018-01-15 07:15:00 1.0 0.4 0 <-changed first value in p1
2018-01-15 07:30:00 -1.0 0.4 1
2018-01-15 07:45:00 -3.0 0.4 1
2018-01-15 08:00:00 -3.0 0.3 1
2018-01-15 08:15:00 -2.0 0.3 1
2018-01-15 08:30:00 -2.0 0.3 1
2018-01-15 08:45:00 -2.0 0.2 1
2018-01-15 09:00:00 -2.7 0.1 1
2018-01-15 09:15:00 -2.7 0.0 1
2018-01-15 09:30:00 -2.7 0.0 1
2018-01-15 09:45:00 -3.7 0.3 1
2018-01-15 10:00:00 -3.0 0.3 1
2018-01-15 10:15:00 -2.0 0.3 1
2018-01-15 10:30:00 -1.0 0.3 1
关于python - 在特定条件下填充 Pandas 数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48209090/