【问题标题】:Filling pandas data frame column under certain condition在特定条件下填充熊猫数据框列
【发布时间】:2018-06-20 21:39:27
【问题描述】:

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

【问题讨论】:

    标签: python pandas dataframe where mask


    【解决方案1】:

    您可以将布尔掩码转换为整数,将True 转换为1False 转换为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
    

    【讨论】:

      猜你喜欢
      • 2016-12-11
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      • 2019-04-28
      • 2019-06-09
      • 2020-11-08
      • 2020-01-19
      相关资源
      最近更新 更多