gpt4 book ai didi

python - 将文字字符串转换为 python 中的列表

转载 作者:太空宇宙 更新时间:2023-11-04 00:20:06 24 4
gpt4 key购买 nike

helpful
'[2, 4]'
'[0, 0]'
'[0, 1]'
'[7, 13]'
'[4, 6]'

有用的列名在字符串中有一个列表。我想将 2 和 4 分成单独的列。

[int(each) for each in df['helpful'][0].strip('[]').split(',')]

这适用于第一行,但如果我这样做了

[int(each) for each in df['helpful'].strip('[]').split(',')]

给我属性错误

AttributeError: 'Series' object has no attribute 'strip'

如何在我的数据框中打印出这样的内容??

helpful not_helpful
2 4
0 0
0 1
7 13
4 6

最佳答案

正如@abarnert 所建议的,第一个要点是找出为什么您的数据以字符串形式出现,并尝试纠正该问题。

但是,如果这超出了您的控制范围,您可以使用 ast.literal_eval,如下所示。

import pandas as pd
from ast import literal_eval

df = pd.DataFrame({'helpful': ['[2, 4]', '[0, 0]', '[0, 1]', '[7, 13]', '[4, 6]']})

res = pd.DataFrame(df['helpful'].map(literal_eval).tolist(),
columns=['helpful', 'not_helpful'])

# helpful not_helpful
# 0 2 4
# 1 0 0
# 2 0 1
# 3 7 13
# 4 4 6

解释

来自documentation , ast.literal_eval 执行以下功能:

Safely evaluate an expression node or a string containing a Python literal or container display. The string or node provided may only consist of the following Python literal structures: strings, bytes, numbers, tuples, lists, dicts, sets, booleans, and None.

关于python - 将文字字符串转换为 python 中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49417311/

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