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

标签 python pandas numpy

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

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

关于python - pandas 数据框上的 numpy arange 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44536646/

相关文章:

python - Numpy 对 2D 数组进行操作以生成 3D 数组

python - 通过 conda (conda-forge opencv) 安装 cv2 依赖项的 setup.py

python - 将列表列表转换为数据框

python - 用插值填充多索引 Pandas DataFrame

python - 使用日期时间创建新列或列表

python - 使用 NumPy 的数据类型的大小

python - sklearn GridSearchCV 不在评分函数中使用 sample_weight

python - 如果通过 process.crawl() 运行,Scrapy CrawlSpider 不会执行 LinkExtractor

python - 数据库字段长度不强制

python - 提取字符串并将其从提取的列 pandas 中删除