我有一个pandas数据框,其中一列包含字符串集(每行是一组字符串)。然而,当我将这个数据帧“保存”到csv,并在稍后将其读回pandas数据帧时,这个特定列中的每一组字符串似乎都被保存为一个字符串。例如,此特定行中的值应该是一组字符串,但它似乎已作为单个字符串读入:
我需要以python字符串集的形式访问这些数据,有没有办法将其转换回python字符串集?或者更好的是,熊猫们是否已经把这本书作为一套读回了呢?
你可以用 series.apply 我想:
series.apply
假设你的集合列被称为 column_of_sets .假设您已经阅读了csv,现在执行此操作以转换回集合。
column_of_sets
df['column_of_sets'] = df['column_of_sets'].apply(eval)
我要带走 eval 来自@Cabara的评论。我认为这是最好的选择。
eval
我认为在将数据帧转换为csv时,可以使用不同的分隔符。
import pandas as pd df = pd.DataFrame(["{'Ramesh','Suresh','Sachin','Venkat'}"],columns=['set']) print('Old df \n', df) df.to_csv('mycsv.csv', sep= ';', index=False) new_df = pd.read_csv('mycsv.csv', sep= ';') print('New df \n',new_df)
输出:
可以将字符串包装到“set()”函数中,将其转换回集合。
string = "{'+-0-', '0---', '+0+-', '0-0-', '++++', '+++0', '+++-', '+---', '0+++', '0++0', '0+00', '+-+-', '000-', '+00-'}" new_set = set(string)