温暖的卡布奇诺 · 用python的pandas读取excel文 ...· 3 周前 · |
被表白的日记本 · 【python】读取excel的行列内容,p ...· 3 周前 · |
好帅的乒乓球 · Pandas读取某列、某行数据——loc、i ...· 2 周前 · |
无邪的黄花菜 · unity中优雅高效绑定UI组件的一种实现方 ...· 1 年前 · |
完美的牛肉面 · 最新docker注册表镜像 docker ...· 1 年前 · |
鬼畜的充值卡 · GraphQL是什么 - OSCHINA ...· 1 年前 · |
礼貌的哑铃 · 怎么样把字竖着放中间-掘金· 1 年前 · |
健壮的冲锋衣 · 基于camunda如何实现会签流程:camu ...· 1 年前 · |
我有一个带有字母数字键的数据帧,我想将其另存为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):
礼貌的哑铃 · 怎么样把字竖着放中间-掘金 1 年前 |