为什么我的列表在保存到 csv 并重新打开后变成字符串? Python

2024-02-11

我有一个 Dataframe,其中每行包含一个句子,后跟一个用 spaCy 创建的词性标签列表:

df.head()

   question             POS_tags            
0  A title for my ...   [DT, NN, IN,...]  
1  If one of the ...    [IN, CD, IN,...]  

当我将 DataFrame 写入 csv 文件(encoding='utf-8')并重新打开它时,数据格式似乎已更改,POS 标签现在出现在引号 ' ' 之间,如下所示:

df.head()

   question             POS_tags                    
0  A title for my ...   ['DT', 'NN', 'IN',...]  
1  If one of the ...    ['IN', 'CD', 'IN',...]  

当我现在尝试使用 POS 标签进行某些操作时,结果发现它们不再是列表,而是变成了甚至包含引号的字符串。它们看起来仍然像列表,但事实并非如此。这样做时这一点很清楚:

q = df['POS_tags']
q = list(q)
print(q)

结果是:

["['DT', 'NN', 'IN']"]

这里发生了什么?

我要么想要专栏'POS_tags' 以包含列表,即使在保存到 csv 并重新打开后也是如此。或者我想对列进行操作 'POS_tags' 再次拥有 SpaCy 最初创建的相同列表。有什么建议如何做到这一点?


为了保留 DataFrame 的精确结构,一个简单的解决方案是使用 pickle 格式序列化 DFpd.to_pickle,而不是使用csv,这将始终丢弃有关数据类型的所有信息,并且在重新导入后需要手动重建。 pickle 的一个缺点是它不可读。

# Save to pickle
df.to_pickle('pickle-file.pkl')
# Save with compression
df.to_pickle('pickle-file.pkl.gz', compression='gzip')

# Load pickle from disk
df = pd.read_pickle('pickle-file.pkl')   # or...
df = pd.read_pickle('pickle-file.pkl.gz', compression='gzip')

从 CSV 导入后修复列表

如果您已经从 CSV 导入,这应该会转换POS_tags从字符串到 python 列表的列:

from ast import literal_eval
df['POS_tags'] = df['POS_tags'].apply(literal_eval)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我的列表在保存到 csv 并重新打开后变成字符串? Python 的相关文章

随机推荐

  • x86 OpCode 指令解码

    我一直在研究 x86 架构的软件开发人员手册 试图提高我的逆向工程技能 我知道该架构很复杂并且向后兼容前几代 随着新一代的出现 一些旧的文档部分被遗漏了 但令人不安的解释和误解之一是与此类似的说明 80 2 ib 因此 基于以下的说明80操
  • 使用 Stripe Firebase 扩展 Webhook 运行订阅付款未触发

    我添加了Stripe 订阅扩展 https firebase google com products extensions firestore stripe subscriptions到我的 Firebase Vue 应用程序 以便我可以为
  • Eclipse 将编译器合规性更新到 1.7

    我在更新 Eclipse 工作区的编译器合规性时遇到一些问题 我实际上使用的是 RTC 但它本质上是 Eclipse 目前 它使用 1 6 的 jdk 因此我可以将 JDK 合规性更改为 1 6 的限制 但是 我在我的项目中使用 jdk 1
  • 从一种安装切换到另一种安装时,Inno setup 会隐藏安装项目

    我应该需要你的帮助 我想知道 Inno 是否有可能为 2 个产品设置 2 个不同的安装掩码 通过从下拉列表中选择 我们将这两种不同的安装称为 SETUP 和 PROGRAM 安装 SETUP 时 我们应该可以选中 取消选中以下复选框 将安装
  • 如何从 Xamarin Forms 中的 Azure B2C 中删除缩放按钮

    我在我的 xamarin forms 应用程序中运行了 azure b2c 它运行良好 但 ui 自定义非常有限 我在登录页面 注册页面上遇到一个问题 忘记了密码 它的底部有一个缩放按钮 这很烦人 因为有时当我尝试按注册时 它会按缩放按钮
  • WooCommerce 中一件免费产品的数量折扣

    我想免费赠送三种产品 如果有人添加了更多数量的商品 我只想免费提供一个数量 这意味着从小计中扣除某一数量的价格 例如 一种产品的价格为 4 添加的总数量为 5 因此小计总计为 20 现在 我想从小计中扣除一个数量的价格 所以 扣除价格后 最
  • 偏移 iframe 内的网页位置

    我有一个 iframe 弹出窗口 应该加载表单 该表单是较大页面的一部分 包含一些输入字段 在这种情况下 加载它的 iframe 宽度限制为大约 1000 像素 充当不同页面的 窗口 有没有办法在加载内容时不对齐 iframe 而是对齐内容
  • C++ 标准中是否有任何计划来解决初始化列表构造函数的不一致问题?

    C 中的初始化列表构造函数经常会引起麻烦 例如 using std vector using std string vector
  • 如何使用 Vue.js 隐藏 div

    我希望能够使用 Vue 隐藏 div 对性能的影响尽可能小 因为网站上的几个 div 都会以这种方式处理 我该怎么做呢 隐藏 div gt 单击另一个 div 时显示它 示例 无 Vue https jsfiddle net 3v65gcg
  • Ag-grid:计算每个过滤器选择的行数

    在我的 ag grid 中我想显示行数在一组过滤器中的每个过滤器选择旁边 也许sort按该计数的选择 降序 默认情况下是这样的 我希望选项显示为 全选 88 凯蒂 泰勒 2 达伦 萨瑟兰 1 约翰 乔 内文 1 巴拉克奥巴马 0 考虑到其他
  • 如何设置IE文档模式?

    在 IE9 中我的浏览器已设置 F10 gt 工具 gt 兼容性视图设置 gt 添加 192 168 10 227 因此 当我尝试提供文件时 浏览器模式是9兼容视图 文档模式是IE7标准 我的问题是 如何将文档模式设置为IE9而不是IE7
  • 如何将“2011-01-12T14:17:55.043Z”这样的日期字符串转换为像 1294841716 这样的长字符串?

    我需要转换此字符串格式的日期 2011 01 12T14 17 55 043Z 到像 1294841716 这样的数字 这是自 1970 年 1 月 1 日以来的秒数 不是毫秒 有没有一种简单的方法来进行这种解析 Update 这是我到目前
  • 排序并删除一行中的重复单词

    The sort命令允许我按字母顺序排列行并删除重复的行 我需要类似的东西 可以对单行上的单词进行排序 将它们按顺序排列 并删除任何重复项 有这个命令吗 E g zebra ant spider spider ant zebra ant 更
  • 如何在填充整个单元格时左对齐Python tkinter网格列

    我正在尝试编写一个 python 类来以表格格式显示数据 我确信已经有一些课程可以做同样的事情 但是 我使用这个练习作为自学 Python 和 tkinter 的方法 在大多数情况下 我让类按照我想要的方式工作 但是我无法让标题和数据单元格
  • jupyter custom.css 删除

    我错误地更新了这个文件来自定义 css D Continuum Anaconda2 Lib site packages notebook static custom custom css 要回滚上述更改 1 我把之前保存的原始文件放回去了
  • 通过 CSS 重复一系列数字

    我正在尝试做这样的事情 h2 1 1 Bananas h2 h3 1 1 1 h3 h3 1 1 2 h3 h3 1 1 3 h3 h2 1 1 Apples h2 h3 1 1 1 h3 h3 1 1 2 h3 h3 1 1 3 h3 h
  • 如何在.NET 中正确地大写希腊单词?

    我们有 ASP NET 应用程序 它在世界各地运行不同的客户端 在此应用程序中 我们有每种语言的词典 在字典中 我们有小写的单词 有时出于印刷原因 我们在代码中将其大写 var greek new CultureInfo el GR str
  • Django - ListView - 循环模板不显示任何项目

    这就是我想要实现的目标 well list html thead tr for item in well info th item th endfor tr thead 项目 urls py from django conf urls im
  • 我想将 ROLLUP 与 PIVOT 结合起来 - 这是一个选项吗?

    我一直在使用 SELECT Author ISNULL MAX CASE Status WHEN Duplicate THEN NumDocs END AS Duplicate ISNULL MAX CASE Status WHEN Fai
  • 为什么我的列表在保存到 csv 并重新打开后变成字符串? Python

    我有一个 Dataframe 其中每行包含一个句子 后跟一个用 spaCy 创建的词性标签列表 df head question POS tags 0 A title for my DT NN IN 1 If one of the IN C