繁体   English   中英

将 Pandas df 字符串列列表转换为整数

[英]Convert Pandas df column list of strings to ints

我有一个这样的 df”

col1
['525', '2830', '43', '567']    
['432', '324', '3993', '5675']  
['234', '2830', '342312', '4410']   

df.applymap(type)显示此列中的所有行都是<class 'str'>

我正在尝试将此 df.col 中的元素转换为整数并将它们汇总到一个新列中。 我已经尝试了十亿次,但都没有成功。

#attempts
#converted to list
map(int, list()) 
map(int, list().split()) 

#geeks for geeks suggestions:
for i in range(0, len(list)): 
    list[i] = int(list[i]) 

test_list = [int(i) for i in test_list] 

我只是不断收到此错误:

ValueError: invalid literal for int() with base 10: '[525 2830 3993 4410]'

有任何想法吗?

df['sum'] = df['col1'].apply(lambda x: sum(int(v) for v in x))
print(df)

印刷:

                        col1     sum
0       [525, 2830, 43, 567]    3965
1     [432, 324, 3993, 5675]   10424
2  [234, 2830, 342312, 4410]  349786

编辑:

import ast

df['sum'] = df['col1'].apply(lambda x: sum(int(v) for v in ast.literal_eval(x)))
print(df)

尝试这个

import ast
df.col1.map(lambda x: sum(map(int, ast.literal_eval(x))))

Out[789]:
0      3965
1     10424
2    349786
Name: col1, dtype: int64

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM