在特定条件下填充 pandas 数据框列
Filling pandas data frame column under certain condition
我有以下数据框,索引为日期时间戳,我想在 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
您可以将布尔掩码转换为整数,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
我有以下数据框,索引为日期时间戳,我想在 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
您可以将布尔掩码转换为整数,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