Skip to main content
 首页 » 编程设计

python之pandas 数据框上的 numpy arange 实现

2025年05月04日24Renyi-Fan

我有一个数据框,像这样,

import pandas as pd 
import numpy as np 
 
 
df = pd.DataFrame({'a': [0, 0.5, 0.2], 
                   'b': [1,1,0.3]}) 
print (df) 
     a    b 
0  0.0  1.0 
1  0.5  1.0 
2  0.2  0.3 

我想生成一个看起来像的系列

pd.Series ([np.arange ( start = 0, stop = 1, step = 0.1),  
 np.arange ( start = 0.5, stop = 1, step = 0.1), 
 np.arange ( start = 0.2, stop = 0.3, step = 0.1)]) 
 
0    [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, ... 
1                            [0.5, 0.6, 0.7, 0.8, 0.9] 
2                                                [0.2] 
dtype: object 

我正在尝试使用 lambda 函数执行此操作并遇到错误,就像这样

foo = lambda x: np.arange(start = x.a, stop = x.b, step = 0.1) 
print (df.apply(foo, axis =1)) 
 
ValueError: Shape of passed values is (3, 10), indices imply (3, 2) 

我不知道这是什么意思。有没有更好/正确的方法来做到这一点?

请您参考如下方法:

我会使用理解

pd.Series([np.arange(a, b, .1) for a, b in zip(df.a, df.b)], df.index) 
 
0    [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, ... 
1                            [0.5, 0.6, 0.7, 0.8, 0.9] 
2                                                [0.2] 
dtype: object