gpt4 book ai didi

python - 使用 pandas 创建一个由 DataFrame 中的列表组成的新列

转载 作者:行者123 更新时间:2023-11-28 16:20:33 25 4
gpt4 key购买 nike

给定以下 DataFrame:

   t
0 3
1 5

我想创建一个新列,其中 wach 条目是一个列表,它是它所在行的函数。特别是它应该有一个包含所有正整数的列表,该整数不大于 列中的条目吨。所以输出应该是:

   t  newCol
0 3 [1,2,3]
1 5 [1,2,3,4,5]

换句话说,我想将 list(range(1,t+1)) 应用于每一行。我知道如何在循环中执行此操作,但有一个很长的 DataFrame,所以我正在寻找速度。谢谢。

最佳答案

这是使用 NumPy 方法的矢量化方法 -

a = df.t.values
idx = a.cumsum()
id_arr = np.ones(idx[-1],dtype=int)
id_arr[idx[:-1]] = -a[:-1]+1
df['newCol'] = np.split(id_arr.cumsum(),idx[:-1])

sample 运行-

In [76]: df
Out[76]:
t newCol
0 4 [1, 2, 3, 4]
1 3 [1, 2, 3]
2 7 [1, 2, 3, 4, 5, 6, 7]
3 2 [1, 2]
4 5 [1, 2, 3, 4, 5]
5 3 [1, 2, 3]

关于python - 使用 pandas 创建一个由 DataFrame 中的列表组成的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40580013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com