[英]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.