![]() |
健壮的皮带 · python DataFrame循环读取 ...· 4 周前 · |
![]() |
没有腹肌的蚂蚁 · Reading an excel file ...· 2 周前 · |
![]() |
唠叨的豆芽 · Pandas中multiindex转换成列_ ...· 2 周前 · |
![]() |
温文尔雅的蛋挞 · GitHub - ...· 5 月前 · |
![]() |
强悍的书签 · 偏好设置 — Procreate 使用手册· 6 月前 · |
![]() |
彷徨的熊猫 · 如何从Python类写入HTML文件_如何使 ...· 7 月前 · |
![]() |
绅士的毛巾 · Git checkout ...· 7 月前 · |
![]() |
踏实的佛珠 · 香港金融管理局 - 智慧银行新纪元· 8 月前 · |
我有一个带有字母数字键的数据帧,我想将其另存为csv,稍后再读。由于各种原因,我需要显式地将此键列读取为字符串格式,我的键值是严格的数字,甚至更糟,例如: 1234E5,Pandas将其解释为浮点数。这显然使密钥变得完全无用。
问题是,当我为数据框或其中任何一列指定字符串dtype时,我只会得到垃圾信息。我这里有一些示例代码:
df = pd.DataFrame(np.random.rand(2,2),
index=['1A', '1B'],
columns=['A', 'B'])
df.to_csv(savefile)
数据框如下所示:
A B
1A 0.209059 0.275554
1B 0.742666 0.721165
然后我是这样读的:
df_read = pd.read_csv(savefile, dtype=str, index_col=0)
结果是:
A B
B ( <
这是我的电脑出了问题,还是我做错了什么,或者仅仅是一个bug?
发布于 2018-09-04 06:54:38
正如Anton T在他的评论中所说的那样,
pandas
会使用其类型嗅探器将
object
类型随机转换为
float
类型,即使您传递了
dtype=object
、
dtype=str
或
dtype=np.str
。
由于您可以传递一个函数字典,其中键是列索引,值是转换函数,因此可以这样做(例如,对于100列)。
pd.read_csv('some_file.csv', converters={i: str for i in range(0, 100)})
如果您不知道将读取多少列,您甚至可以为比列数大得多的N传递
range(0, N)
。
发布于 2021-05-02 05:17:46
如今,(pandas==1.0.5)它就能正常工作。
pd.read_csv(f, dtype=str)
会将除NaN值以外的所有内容都读取为字符串(如果您不希望将此字符串解析为NAN,请使用
na_filter=False
)
发布于 2019-04-11 07:06:48
如果您事先不知道列,请使用适用于任何列的转换器:
import pandas as pd
class StringConverter(dict):
def __contains__(self, item):
return True
def __getitem__(self, item):
![]() |
强悍的书签 · 偏好设置 — Procreate 使用手册 6 月前 |
![]() |
彷徨的熊猫 · 如何从Python类写入HTML文件_如何使用python从HTML文件中读取数据并将数据写入CSV文件?_无法从python写入CSV文件 - 腾讯云开发者社区 - 腾讯云 7 月前 |
![]() |
踏实的佛珠 · 香港金融管理局 - 智慧银行新纪元 8 月前 |