将数据框中的列从字符串类型转换为元组

时间:2020-05-04 09:55:15

标签: python string pandas

我有一个数据框“ data”,其中的“ city”列似乎是一个元组。但是,当我尝试访问其元素时,它显示为字符串形式。如下图所示:

data.city[0]

输出为:

“(0,['纽约','德里','曼谷'])

显然,所有项目都是字符串格式。

我希望输出如下:

(0,['纽约','德里','曼谷'])

我该如何实现?

谢谢

2 个答案:

答案 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)))