根据两个熊猫列创建一系列浮点值

时间:2019-07-19 11:05:00

标签: python pandas range

我有以下数据集

        x     y

0      0.5    1.5
1      2.5    3.5
2      1.5    2.5
3      4.5    5.5

我想生成一个列,其范围从x到y,步长为0.5。...

      x        y          range
0    0.5      1.5      [0.5, 1.0, 1.5]
1    2.5      3.5      [2.5, 3.0, 3.5]
2    1.5      2.5      [1.5, 2.0, 2.5]
3    4.5      5.5      [4.5, 5.0, 5.5]

我该怎么办?

2 个答案:

答案 0 :(得分:0)

有可能,但是如果性能很重要,则不是good idea

df['range'] = [np.arange(s, e + .5, .5) for s, e in zip(df['x'], df['y'])]
print (df)
     x    y            range
0  0.5  1.5  [0.5, 1.0, 1.5]
1  2.5  3.5  [2.5, 3.0, 3.5]
2  1.5  2.5  [1.5, 2.0, 2.5]
3  4.5  5.5  [4.5, 5.0, 5.5]

答案 1 :(得分:0)

使用apply使其精美:

import numpy as np

df['range'] = df.apply(lambda x: np.arange(x[0],x[1]+1e-9,0.5), axis=1)
print(df)

     x    y            range
0  0.5  1.5  [0.5, 1.0, 1.5]
1  2.5  3.5  [2.5, 3.0, 3.5]
2  1.5  2.5  [1.5, 2.0, 2.5]
3  4.5  5.5  [4.5, 5.0, 5.5]

注意:axis=1按行应用功能