我有一个数据框“ data”,其中的“ city”列似乎是一个元组。但是,当我尝试访问其元素时,它显示为字符串形式。如下图所示:
data.city[0]
输出为:
“(0,['纽约','德里','曼谷'])
显然,所有项目都是字符串格式。
我希望输出如下:
(0,['纽约','德里','曼谷'])
我该如何实现?
谢谢
答案 0 :(得分:1)
您可以使用ast.literal_eval
import ast
x = ast.literal_eval("(0, ['New York', 'Delhi', 'Bangkok'])")
print(x)
print(type(x))
输出:
(0, ['New York', 'Delhi', 'Bangkok'])
<class 'tuple'>
您可以使用:
data.city = data.city.apply(ast.literal_eval)
答案 1 :(得分:1)
使用ast.literal_eval
。尽管如果您有一个空字符串,它可能会引发异常。因此,将其包装在str
函数中应该是谨慎的:
from ast import literal_eval
df['city'] = df.city.apply(lambda x: literal_eval(str(x)))