pandas dataframe:新列依赖于其他

时间:2014-07-16 20:52:06

标签: python pandas

我有这个数据框,我想添加另一列,具体取决于更改是否大于某个值,例如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

1 个答案:

答案 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等等),但这更为明确。)