我有这个数据框,我想添加另一列,具体取决于更改是否大于某个值,例如1.03
所以我从:
开始index change
2000-02-18 0.995383
2000-02-22 0.956925
2000-02-23 0.984765
2000-02-24 1.033910
2000-02-25 1.030220
2000-02-28 1.025333
并输出:
index change label
2000-02-18 0.995383 0
2000-02-22 0.956925 0
2000-02-23 0.984765 0
2000-02-24 1.033910 1
2000-02-25 1.030220 1
2000-02-28 1.025333 0
答案 0 :(得分:1)
您可以执行矢量化比较:
>>> df["label"] = df["change"] > 1.03
>>> df
index change label
0 2000-02-18 0.995383 False
1 2000-02-22 0.956925 False
2 2000-02-23 0.984765 False
3 2000-02-24 1.033910 True
4 2000-02-25 1.030220 True
5 2000-02-28 1.025333 False
或者,如果您愿意:
>>> df["label"] = (df["change"] > 1.03).astype(int)
>>> df
index change label
0 2000-02-18 0.995383 0
1 2000-02-22 0.956925 0
2 2000-02-23 0.984765 0
3 2000-02-24 1.033910 1
4 2000-02-25 1.030220 1
5 2000-02-28 1.025333 0
(还有很多其他方式可以从bool
转换为int
(+0
,*1
等等),但这更为明确。)