python - 在特定条件下填充 Pandas 数据框列

标签 python pandas dataframe where-clause mask

我有以下数据框,索引为日期时间戳,我想在 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/

相关文章:

python - Pandas 根据条件重复行并取消堆叠

python - Pandas DataFrame 到列表列表的字典

python - 重新索引数据框 Pandas

r - R 中数据帧行上的按位 AND 或类似运算?

python - Pandas:如何合并不同的数据框?

python - SQLAlchemy 外键访问优化

python - sqlalchemy.exc.OperationalError : (sqlite3. OperationalError)没有这样的列: false

python - Pycrypto aes 256 初始化向量大小

r - 如果用特殊字符分隔,例如 R 中的 "+"符号,则为数据框中的项目创建新行

python - 将 Unicode 转换为二进制