- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 pandas (v0.18.1) 从名为“test.csv”的文件中导入以下数据:
a,b,c,d
1,1,1,1.0
我已将“c”和“d”列的 dtype 设置为“decimal.Decimal”,但它们返回为“str”类型。
import pandas as pd
import decimal as D
df = pd.read_csv('test.csv', dtype={'a': int, 'b': float, 'c': D.Decimal, 'd': D.Decimal})
for i, v in df.iterrows():
print(type(v.a), type(v.b), type(v.c), type(v.d))
结果:
`<class 'int'> <class 'float'> <class 'str'> <class 'str'>`
我也曾尝试在导入后显式转换为十进制,但没有成功(转换为 float 有效但不是十进制)。
df.c = df.c.astype(float)
df.d = df.d.astype(D.Decimal)
for i, v in df.iterrows():
print(type(v.a), type(v.b), type(v.c), type(v.d))
结果:
`<class 'int'> <class 'float'> <class 'float'> <class 'str'>`
以下代码将“str”转换为“decimal.Decimal”,所以我不明白为什么 pandas 的行为方式不同。
x = D.Decimal('1.0')
print(type(x))
结果:
`<class 'decimal.Decimal'>`
最佳答案
我认为你需要转换器:
import pandas as pd
import io
import decimal as D
temp = u"""a,b,c,d
1,1,1,1.0"""
# after testing replace io.StringIO(temp) to filename
df = pd.read_csv(io.StringIO(temp),
dtype={'a': int, 'b': float},
converters={'c': D.Decimal, 'd': D.Decimal})
print (df)
a b c d
0 1 1.0 1 1.0
for i, v in df.iterrows():
print(type(v.a), type(v.b), type(v.c), type(v.d))
<class 'int'> <class 'float'> <class 'decimal.Decimal'> <class 'decimal.Decimal'>
关于python - pandas read_csv 列 dtype 设置为十进制但转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38114654/
我正在尝试使用 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
我是一名优秀的程序员,十分优秀!