我有以下数据集
Out[121]:
a b
0 1 3
1 2 4
并希望生成一个包含 a 和 b 中数字范围的列。所以:
Out[128]:
a b range
0 1 3 [1, 2, 3]
1 2 4 [2, 3, 4]
最佳答案
您可以为此使用列表理解。您可能会发现这比 pd.DataFrame.apply
更有效。
df['range'] = [list(range(i, j+1)) for i, j in df.values]
结果:
a b range
0 1 3 [1, 2, 3]
1 2 4 [2, 3, 4]
之所以可行,是因为:
- 您可以直接通过列表分配系列。
df.values
返回数据框的numpy
数组表示形式,当您迭代时,它会返回每一行的内容。- 如果您有更多列,只需使用
df[['a', 'b']].values
。
关于python - 基于两个 Pandas 列创建一个范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49619842/