草庐IT

csv_export

全部标签

python - 如何在读取 CSV 文件时捕获 `CParserError`

我想将CSV列表读入数据框中。但是,当文件具有与数据本身不匹配的标题行(即元数据或其他空白行)时,我无法捕捉到错误。此错误是“CParserError”(请参阅​​底部的错误消息)。我目前的解决方案是使用try-except语句,用try:#readfileexceptCParserError:#givemeanerrormessage但是,这会失败并出现以下错误:NameError:name'CParserError'isnotdefined我的代码如下。如您所见,我想我需要多个except语句来捕获各种错误。第一个应该检查默认编码类型是否有效(文件永远不会是utf-8或latin-

python - pd.read_csv 默认情况下将整数视为 float

我有一个csv看起来像(标题=第一行):name,a,a1,b,b1arnold,300311,arnld01,300311,arnld01sam,300713,sam01,300713,sam01当我运行时:df=pd.read_csv('file.csv')a和b列的末尾附加了一个.0,如下所示:df.head()name,a,a1,b,b1arnold,300311.0,arnld01,300311.0,arnld01sam,300713.0,sam01,300713.0,sam01列a和b是整数或空白,那么为什么pd.read_csv()将它们视为float,我如何确保它们读取

python - 使用 Python 将 JSON 转换为 CSV(空闲)

我有一个纬度/经度的JSON文件,我想将其转换为CSV文件。我想用Python来做这件事。我已经阅读/尝试了所有其他stackoverflow和谷歌搜索结果建议。我已经成功地创建了CSV文件并包含了标题,但除此之外,愚蠢的事情开始发生。到目前为止,这是我的代码的工作部分:importjson,csvx="""[{"longitude":"-73.689070","latitude":"40.718000"},{"longitude":"-73.688400","latitude":"40.715990"},{"longitude":"-73.688340","latitude":"40

python - Pandas:使用循环和分层索引将多个 csv 文件导入数据框

我想将目标目录中的多个CSV文件(具有不同列数)读取到单个PythonPandasDataFrame中,以高效地搜索和提取数据。示例文件:Events1,0.32,0.20,0.672,0.94,0.19,0.14,0.21,0.943,0.32,0.20,0.64,0.324,0.87,0.13,0.61,0.54,0.25,0.435,0.62,0.21,0.77,0.44,0.16这是我目前所拥有的:#getalistofallcsvfilesintargetdirectorymy_dir="C:\\Data\\"filelist=[]os.chdir(my_dir)forfil

Python 无法在 r+ 模式下打开 11gb csv 但在 r 模式下打开

我在处理一些循环遍历一堆.csvs的代码时遇到问题,如果其中没有任何内容(即以\n换行符结尾的文件),则删除最后一行p>我的代码在所有文件上都能成功运行,除了一个文件,它是目录中最大的文件,大小为11gb。第二大文件是4.5gb。它失败的行很简单:withopen(path_str,"r+")asmy_file:我收到以下消息:IOError:[Errno22]invalidmode('r+')orfilename:'F:\\Shapefiles\\ab_premium\\processed_csvs\\a.csv'我使用os.file.join创建的path_str以避免错误,我尝试

python - 在 Pandas 中,read_excel() 中使用的 read_csv() 中的 'nrows' 是什么?

只想将特定范围的数据从excel电子表格(.xlsm格式,因为它有宏)导入pandas数据框。是这样做的:data=pd.read_excel(filepath,header=0,skiprows=4,nrows=20,parse_cols="A:D")但nrows似乎只适用于read_csv()?read_excel()的等效项是什么? 最佳答案 作为notedinthedocumentation,从pandas版本0.23开始,这现在是一个内置选项,并且功能几乎与OP所述完全相同。代码data=pd.read_excel(fil

python - 选择特定的 CSV 列(过滤)-Python/pandas

我有一个包含100列的非常大的CSV文件。为了说明我的问题,我将使用一个非常基本的示例。假设我们有一个CSV文件。invaluedf0975f0151976F42977d413978B6049792C0我想选择特定的列。importpandasdata=pandas.read_csv("ThisFile.csv")为了选择我使用的前两列data.ix[:,:2]为了选择不同的列,例如第2列和第4列。我该怎么办?还有另一种方法可以通过重写CSV文件来解决此问题。但这是一个巨大的文件;所以我正在避免这种方式。 最佳答案 这将选择第二列和

python - dask 可以并行化从 csv 文件中读取数据吗?

我正在将一个大型文本文件转换为一个hdf存储,以期获得更快的数据访问速度。转换工作正常,但是从csv文件读取不是并行完成的。它真的很慢(SSD上一个1GB的文本文件大约需要30分钟,所以我猜它不是IO-bound)。有没有办法让它在多个线程中并行读取?因为它可能很重要,我目前被迫在Windows下运行——以防万一。fromdaskimportdataframeasddfdf=ddf.read_csv("data/Measurements*.csv",sep=';',parse_dates=["DATETIME"],blocksize=1000000,)df.categorize(['T

python - 有效地将数据从 CSV 读取到具有多个分隔符的数据框中

我有一个笨拙的CSV文件,它有多个分隔符:非数字部分的分隔符是',',数字部分的分隔符是';'。我想尽可能高效地仅从数字部分构建数据框。我做了5次尝试:其中,利用pd.read_csv的converters参数,使用正则表达式和engine='python',使用str.replace。它们都比读取没有转换的整个CSV文件慢2倍以上。这对我的用例来说太慢了。我知道这种比较不是对等的,但它确实表明整体性能不佳不是由I/O驱动的。有没有更有效的方法将数据读入数字Pandas数据框?或者等效的NumPy数组?以下字符串可用于基准测试目的。#Python3.7.0,Pandas0.23.4fr

python - 用于推断标题行的 `header=True` 的旧 pre-0.17 pandas.read_csv 行为?

旧的0.17之前版本的pandasread_csv()如何解释传递bool值header=True/False以推断标题行?我有带标题的CSV数据:col1;col2;col31.0;10.0;100.02.0;20.0;200.03.0;30.0;300.0如果用header=True读取即df=pandas.read_csv('test.csv',sep=';',header=True),给出以下数据框:1.010.0100.002202001330300这意味着pandas使用第二行(“第1行”)作为列名(推断的名称为“1.0”、“10.0”和“100.0”)。而如果使用head