- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在有效地尝试将以下文件读入 DataFrame 并再次将其原封不动地写出。
F1,F2,F3,F4,F5
"blah","blah",123,"123","123"
"blue","blue",456,"456",""
我原以为 pandas.read_csv 会将上面的所有字段解释为字符串(因此 dtype:object
),F3 除外。
但是,F4 被视为数字字段并指定 dtype:int64
这意味着使用 quoting=csv.QUOTE_NONNUMERIC
再次写回数据会丢失 F4 周围的引号。
pd.read_csv(test, quotechar='"', sep=',')
Out[90]:
F1 F2 F3 F4 F5
0 blah blah 123 123 123.0
1 blue blue 456 456 NaN
pd.read_csv("test.txt", quotechar='"', sep=',').dtypes
Out[91]:
F1 object
F2 object
F3 int64
F4 int64
dtype: object
这还会产生另一个问题:如果任何 F5 值是空字符串(即 ""
),F5 将被视为 float64
为空字符串的 NaN
值。这些值将被写回为 ""
,但所有实际值现在都将附加一个 .0
,因为它们被视为 float 。
我尝试过 quoting
参数的各种选项 - quoting=csv.QUOTE_NONE
是唯一将 F4 和 F5 视为字符串的选项,但随后我显然以数据中嵌入的实际引号结束。我本以为 quoting=csv.QUOTE_NONNUMERIC
会做我想做的事,但它将所有 F3、F4、F5 都视为 float64
。
我觉得我可能在这里遗漏了一些关于如何确定数据类型的基本知识?我能想到的唯一解决方法是读取每个文件的标题和第一个数据行,将其解析为带引号的字段,并即时构建一个显式字典(或者首先使用 quoting=csv.QUOTE_NONE< 读取文件
并根据哪些列包含引号执行相同的操作)然后使用显式数据类型再次读取文件。
这似乎是一个冗长(而且很慢!)的替代方案,所以我希望有人能指出我在 read_csv 文档中遗漏的内容。谢谢。
额外的细节以防任何相关:
read_csv
时,我首先解析这些标题行并使用 header=nnn
跳过。最佳答案
很遗憾,您想要实现的目标是不可能的。
CSV 引号定义字段,而不是内容或类型。
当解析器看到“123”、“12,3”或“ab,c”时,它使用引号将逗号保留为字段的一部分,而不是定义内容是数字还是其他任何内容。那么引用不是内容的一部分。
正如@user2357112supportsMonica 很好地指出的那样,这对于处理欧洲小数点分隔符很重要。
因此,回到您的问题,“123”和 123 在内容方面完全相同,您无法从中提取类型信息……
关于python - Pandas read_csv 处理给定数字数据类型的带引号字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70924234/
我正在尝试使用 dask 读取 csv 文件,它给了我如下错误。但问题是我想要我的 ARTICLE_ID是 object(string) .谁能帮我成功读取数据? 回溯如下: ValueError:
我有一个文件,其中包含如下数据 1000000 183:0.6673;2:0.3535;359:0.304;363:0.1835 1000001 92:1.0 1000002 112:1.0 1000
我刚刚注意到 read_csv()以某种方式使用了意外的随机数(至少对我而言)。对应的基R函数read.csv()不这样做。那么,read_csv() 是什么意思?使用随机数?我查看了文档,但找不到明
我有一个 csv 文件,其中包含日期和时间戳作为两列。我正在使用 Pandas read_csv将内容读入数据帧。我的最终目标是根据数据绘制时间序列图。 !head vmstat.csv wait_p
我正在解析大量 csv 数据。数据相当“脏”,因为我有不一致的分隔符、虚假字符和格式问题,这些问题会导致 出现问题。 read_csv() . 然而,我的问题不是数据的肮脏,而是试图理解 的解析错误。
我有以下 csv: value value value value ... id 1 1 1
我无法读取仅知道部分文件名的 csv 文件。这是我所做的,但出现错误: "pandas.errors.ParserError: Error tokenizing data." What should
我想知道是否有办法在 read_csv() 过程中读取分类值。 通常您可以在事后进行转换,例如: df.zone = df.zone.astype('category') 此时 df 占用了更多内存,
我尝试用 pandas 分析的 HTTP 日志文件有时会有意外的行。这是我加载数据的方式: df = pd.read_csv('mylog.log', sep=r'\s(?=(
csv 数据示例: 2019-08-15 00:00:06,430 0:0 - {"info":{"name":"LTD - PUBLIC"}} pd.read_csv(filepath, sep=
我对 python 很陌生。 我正在尝试使用 python 自动执行一些建筑能耗数据的数据分析。我正在使用 python 2.7.3、pandas 0.12、Canopy with qtconsole
我有一个 csv 文件,格式如下: 0;2017-02-16 15:08:16;81,307877;;;;;;; 因此,分号作为分隔符,日期和时间以及带小数点逗号的 float 。最后是一堆分号。 P
我有一个 csv 文件如下: 0 5 1 10 2 15 3 20 4 25 我想将其保存为名称为 x,y 轴的数据框,然后绘制它。但是,当我分配 x,y 时,我得到了一个困惑的 DataFrame,
这里将更新最新的最全面的read_csv()函数功能以及参数介绍,参考资料来源于官网。 pandas库简介 官方网站里详细说明了pandas库的安装以及使用方法,在这里获取最新的pandas库信
从windows操作系统本地读取csv文件报错 ? 1
pandas.read_csv()遇到读进来乱码问题 1.设置encoding='gbk'或者encoding='utf-8'。pandas.read_csv('data.csv',encodin
我有一个包含日期、国家/地区(只能在预定义列表中取值)等信息的 csv 文件,我目前正在使用 converters 参数来进行一些完整性检查,如下所示: import pandas as pd def
我是 Pandas 库的新手。 我共享了基于数据框的代码。 有没有办法在没有任何定界符的情况下逐行读取 gzip 文件(使用整行,该行可以包含逗号和其他字符)作为单行并在数据框中使用它?似乎你必须提供
我正在有效地尝试将以下文件读入 DataFrame 并再次将其原封不动地写出。 F1,F2,F3,F4,F5 "blah","blah",123,"123","123" "blue","blue",4
我正在尝试读取一个在每个单元格中包含多个值的 csv 文件,并且我想将它们编码为单个 int 格式的字节以存储在 Pandas 单元格中,(例如 (1, 1) -> 771)。为此,我想使用 read
我是一名优秀的程序员,十分优秀!