社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Terrence J • 3 年前 • 1195 次点击  

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

enter image description here

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133824
 
1195 次点击  
文章 [ 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)