gpt4 book ai didi

python - 将csv文件读取到 `dtype`时,如何指定索引的 `DataFrame`?

转载 作者:太空狗 更新时间:2023-10-29 21:46:07 34 4
gpt4 key购买 nike

在python 3.4.3和Pandas 0.16中,如何指定索引的dtypestr?下面的代码是我试过的:

In [1]: from io import StringIO

In [2]: import pandas as pd

In [3]: import numpy as np

In [4]: fra = pd.read_csv(StringIO('date,close\n20140101,10.2\n20140102,10.5'), index_col=0, dtype={'date': np.str_, 'close': np.float})

In [5]: fra.index
Out[5]: Int64Index([20140101, 20140102], dtype='int64')

最佳答案

看起来参数 index_col=0 优先于 dtype 参数,如果你删除 index_col 参数然后你可以调用set_index 之后:

In [235]:

fra = pd.read_csv(io.StringIO('date,close\n20140101,10.2\n20140102,10.5'), dtype={'date': np.str_, 'close': np.float})
fra
Out[235]:
date close
0 20140101 10.2
1 20140102 10.5
In [236]:

fra = fra.set_index('date')
fra.index
Out[236]:
Index(['20140101', '20140102'], dtype='object')

另一种方法是删除 index_col 参数,只对从 read_csv 返回的 df 调用 set_index,这样它就变成了单行代码:

In [237]:

fra = pd.read_csv(io.StringIO('date,close\n20140101,10.2\n20140102,10.5'), dtype={'date': np.str_, 'close': np.float}).set_index('date')
fra.index
Out[237]:
Index(['20140101', '20140102'], dtype='object')

更新

这是一个 bug针对版本 0.17.0

关于python - 将csv文件读取到 `dtype`时,如何指定索引的 `DataFrame`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29792865/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com