当前位置: 首页 > 面试题库 >

使用pandas从csv文件中读取元组

咸皓
2023-03-14
问题内容

使用pandas,我已经将一个数据帧导出到一个csv文件,该数据帧的单元格包含字符串元组。生成的文件具有以下结构:

index,colA
1,"('a','b')"
2,"('c','d')"

现在,我想使用read_csv读回它。但是,无论我尝试什么,pandas都会将值解释为字符串而不是元组。例如:

In []: import pandas as pd
       df = pd.read_csv('test',index_col='index',dtype={'colA':tuple})
       df.loc[1,'colA']
Out[]: "('a','b')"

有没有办法告诉pandas做正确的事?最好在不对数据帧进行大量后期处理的情况下:实际表具有5000行和2500列。


问题答案:

将元组存储在列中通常不是一个好主意。失去了使用Series和DataFrame的许多优点。也就是说,您可以使用converters后处理字符串:

>>> df = pd.read_csv("sillytup.csv", converters={"colA": ast.literal_eval})
>>> df
   index    colA
0      1  (a, b)
1      2  (c, d)

[2 rows x 2 columns]
>>> df.colA.iloc[0]
('a', 'b')
>>> type(df.colA.iloc[0])
<type 'tuple'>

但是我可能会在源头进行更改,以避免首先存储元组。



 类似资料:
  • 问题内容: 当我写这篇文章时,我尝试使用Pandas处理大型CSV文件。 它会引发“ pandas.parser.CParserError:错误标记数据。C错误:内存不足” wc -l表示有13822117行,我需要在此csv文件数据帧上进行汇总,有没有办法处理其他然后拆分CSV成几个文件,并编写代码以合并结果?有什么建议吗?谢谢 输入是这样的: 所需的输出是这样的: 如果数据集较小,则可以使用下

  • 主要内容:read_csv(),to_csv()在《 Python Pandas读取文件》中,我们讲解了多种用 Pandas 读写文件的方法。本节我们讲解如何应用这些方法 。 我们知道,文件的读写操作属于计算机的 IO 操作,Pandas IO 操作提供了一些读取器函数,比如 pd.read_csv()、pd.read_json 等,它们都返回一个 Pandas 对象。 在 Pandas 中用于读取文本的函数有两个,分别是: read_csv(

  • 问题内容: 我正在尝试在pandas中读取较大的csv文件(大约6 GB),并且遇到以下内存错误: 任何帮助吗? 问题答案: 该错误表明机器没有足够的内存来一次将整个CSV读入。假设你一次也不需要整个数据集都在内存中,那么避免该问题的一种方法是分批处理CSV(通过指定chunksize参数): 该参数指定每个块的行数。(当然,最后一块可能少于行。)

  • 问题内容: 我正在运行一个程序,正在处理30,000个类似文件。他们中有随机数正在停止并产生此错误… 这些文件的源/创建都来自同一位置。纠正此错误以继续导入的最佳方法是什么? 问题答案: 可以选择处理不同格式的文件。我主要使用,或者替代地阅读,并且通常用于。 您还可以使用而不是的多个选项(请参阅python docs,也可能会遇到许多其他编码)。 请参阅相关的文档, 有关文件的文档示例以及有关SO

  • 示例CSV: 我试图只捕获特定的列,例如、、和。 我看到的代码使我相信我可以通过相应的编号调用特定的列,因此:将对应于,使用迭代每一行将产生第2列中的所有项。只是它没有。

  • 我是R的新手,想读一个csv文件。但是当我试图阅读它时,我遇到了错误。我的csv文件如下: 当我在RStudio中使用此命令时,我得到了错误:命令: 错误: 读取时出错。表(file=file,header=header,sep=sep,quote=quote,:不允许重复的“row.names” 我还尝试删除错误并使用此命令: 但是当我查看输出时,它不能保持方阵的结构。你能帮我做什么吗?

  • 我正在尝试读取Mac上pig shell上的csv文件。我所做的只是文件到变量中,然后变量。我是这样做的: 我使用的数据是从这里提供的github下载的 此文件在我的Mac上的本地安装的hdfs中可用。当我执行时,我得到一个错误: org.apache.pig.impl.logicallayer.FrontendException:错误1066:无法打开别名影片的迭代器 在org.apache.p

  • 我正在运行一个程序,可以处理30000个类似的文件。他们中的一些人正在停止并产生这个错误...