gpt4 book ai didi

python - 将列表转换为 int 并对 pandas 数据框中的所有元素求和

转载 作者:行者123 更新时间:2023-12-04 13:15:17 26 4
gpt4 key购买 nike

对 pandas 很陌生,我试图在 pandas 数据框的单个列中对列表的元素求和,但我找不到这样做的方法

数据框看起来像这样:

index codes 
0 [19, 19]
1 [3, 4]
2 [20, 5, 3]
3 NaN
4 [1]
5 NaN
6 [14, 2]

我想得到的是:

index codes       total 
0 [19, 19] 38
1 [3, 4] 7
2 [20, 5, 3] 28
3 NaN 0
4 [1] 1
5 NaN 0
6 [14, 2] 16

但是代码中的值是通过使用来自不同列的 str.findall('-(\d+)') 获得的,因此它们不是整数列表

非常感谢任何帮助,谢谢。

最佳答案

我会使用 str.extractall() 而不是 str.findall():

# replace orig_column with the correct column name
df['total'] = (df['orig_column'].str.extractall('-(\d+)')
.astype(int).sum(level=0)
.reindex(df.index, fill_value=0)
)

如果您真的想使用当前的codes 列:

df['total'] = df['codes'].explode().astype(float).sum(level=0)

输出:

   index       codes  total
0 0 [19, 19] 38
1 1 [3, 4] 7
2 2 [20, 5, 3] 28
3 3 NaN 0
4 4 [1] 1
5 5 NaN 0
6 6 [14, 2] 16

关于python - 将列表转换为 int 并对 pandas 数据框中的所有元素求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61093175/

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