Pandas新列以不变的增量

时间:2016-02-12 01:39:05

标签: python numpy pandas

我需要一个以增量添加的新列,在本例中为.02。

DF之前:

           x         y        x2        y2
0   1.022467  1.817298  1.045440  3.302572
1   1.026426  1.821669  1.053549  3.318476
2   1.018198  1.818419  1.036728  3.306648
3   1.013077  1.813290  1.026325  3.288020
4   1.017878  1.811058  1.036076  3.279930
DF之后:

           x         y        x2        y2         t
0   1.022467  1.817298  1.045440  3.302572  0.000000
1   1.026426  1.821669  1.053549  3.318476  0.020000
2   1.018198  1.818419  1.036728  3.306648  0.040000
3   1.013077  1.813290  1.026325  3.288020  0.060000
4   1.017878  1.811058  1.036076  3.279930  0.080000
5   1.016983  1.814031  1.034254  3.290708  0.100000
我已经环顾了一会儿,找不到好的解决方案。我想到的唯一方法是创建一个标准的python列表并将其引入。必须有一个更好的方法。感谢

1 个答案:

答案 0 :(得分:2)

因为你的索引是这个的完美范围(即0 ... n),只需将它乘以常数:

df['t'] = .02 * df.index.values

>>> df
          x         y        x2        y2     t
0  1.022467  1.817298  1.045440  3.302572  0.00
1  1.026426  1.821669  1.053549  3.318476  0.02
2  1.018198  1.818419  1.036728  3.306648  0.04
3  1.013077  1.813290  1.026325  3.288020  0.06
4  1.017878  1.811058  1.036076  3.279930  0.08

你也可以使用列表理解:

df['t'] = [0.02 * i for i in range(len(df))]