Py学习  »  Python

Python集以字符串形式存储在数据帧的列中

Terrence J • 3 年前 • 1279 次点击  

我有一个pandas数据框,其中一列包含字符串集(每行是一组字符串)。然而,当我将这个数据帧“保存”到csv,并在稍后将其读回pandas数据帧时,这个特定列中的每一组字符串似乎都被保存为一个字符串。例如,此特定行中的值应该是一组字符串,但它似乎已作为单个字符串读入:

enter image description here

我需要以python字符串集的形式访问这些数据,有没有办法将其转换回python字符串集?或者更好的是,熊猫们是否已经把这本书作为一套读回了呢?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133824
 
1279 次点击  
文章 [ 3 ]  |  最新文章 3 年前
Willow
Reply   •   1 楼
Willow    3 年前

你可以用 series.apply 我想:

假设你的集合列被称为 column_of_sets .假设您已经阅读了csv,现在执行此操作以转换回集合。

df['column_of_sets'] = df['column_of_sets'].apply(eval)

我要带走 eval 来自@Cabara的评论。我认为这是最好的选择。

Manjunath K Mayya
Reply   •   2 楼
Manjunath K Mayya    3 年前

我认为在将数据帧转换为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)

输出:

enter image description here

David Michael
Reply   •   3 楼
David Michael    3 年前

可以将字符串包装到“set()”函数中,将其转换回集合。

string = "{'+-0-', '0---', '+0+-', '0-0-', '++++', '+++0', '+++-', '+---', '0+++', '0++0', '0+00', '+-+-', '000-', '+00-'}"
new_set = set(string)