pandas是否支持使用read_csv读取`set`参数

时间:2017-06-21 15:27:42

标签: python pandas

我使用to_csv保存set参数。

csv文件如下。

  

1,59,“set([17122,196,26405,13032,39657,12427,25133,35951,   38928,2 6088,10258,49235,10326,13176,30450,41787,14084,   46149])“,18,19.0,1 1,5.36363649368

我可以使用read_csv并返回set类型,但str

users = pd.read_csv(DATA_PATH + "users_match.csv", dtype={
})

enter image description here

2 个答案:

答案 0 :(得分:1)

答案是肯定的。你的解决方案

users = pd.read_csv(DATA_PATH + "users_match.csv", header = None)
只要您在set([...])附近有双引号,

就会将第2列作为字符串返回。 然后使用

users[2].apply(lambda x: eval(x))

将其转换回set

答案 1 :(得分:1)

要将DataFrame的str对象(以字符“set”开头的字符串)转换为内置的Python set对象,这是一种方法:

>>> import pandas as pd
>>> df = pd.read_csv('users_match.csv', header=None)
>>> type(df[2][0])
str
>>> df.set_value(0, 2, eval(df[2][0]))
>>> type(df[2][0])
set