我有以下数据集
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]
我该怎么办?
答案 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
按行应用功能