【发布时间】:2018-10-01 15:54:05
【问题描述】:
我有一个如下所示的数据框
df =
value
2014-05-21 10:00:00 0.0
2014-05-21 11:00:00 3.4
2014-05-21 12:00:00 nan
2014-05-21 13:00:00 0.0
2014-05-21 14:00:00 nan
2014-05-21 15:00:00 1.0
..............
我想添加两列,
第一个名为“active”将值切换为 1(如果 df.value >=0)和 0(如果 df.value = nan),第二个“unactive”将值切换为 0(如果df.value >=0 ) 和 -1 (如果 df.value = nan),所以新的数据框会像
df_new =
value active unactive
2014-05-21 10:00:00 0.0 1 0
2014-05-21 11:00:00 3.4 1 0
2014-05-21 12:00:00 nan 0 -1
2014-05-21 13:00:00 0.0 1 0
2014-05-21 14:00:00 nan 0 -1
2014-05-21 15:00:00 1.0 1 0
............
我尝试使用for循环,但是时间序列很长时会花费太多时间。有谁知道更好的方法吗?感谢您的提前!
【问题讨论】:
-
所以如果 df.value
-
@smci 好问题,在问题中我没有负数,但实际上我想指出值 (>=0) 等于 (=!nan)。
标签: python pandas dataframe boolean nan