Python 指定熊猫中的数据类型

Python 指定熊猫中的数据类型,python,pandas,Python,Pandas,我在加载一个有几十万行的文本文件时遇到问题(示例可以下载)。我通过以下方式加载文件: import pandas as pd data = pd.read_csv('file_name.txt', sep='|', skiprows=[1]) 我主要关注“州代码”、“城市代码”和“站点ID”列,它们作为对象/浮动导入。但是,我需要保留任何前导零,因此我尝试通过指定dtype打开: data = pd.read_csv('file_name.txt', sep='|', skiprows=[1]

我在加载一个有几十万行的文本文件时遇到问题(示例可以下载)。我通过以下方式加载文件:

import pandas as pd
data = pd.read_csv('file_name.txt', sep='|', skiprows=[1])
我主要关注“州代码”、“城市代码”和“站点ID”列,它们作为对象/浮动导入。但是,我需要保留任何前导零,因此我尝试通过指定dtype打开:

data = pd.read_csv('file_name.txt', sep='|', skiprows=[1], dtype='string')
这会在我的数据帧中产生乱码,因此我尝试指定编码:

data = pd.read_csv('file_name.txt', sep='|', dtype='string', encoding='latin-1')
这就产生了另一个乱七八糟的局面。我还尝试使用字典按列指定数据类型:

types = {'State Code':'string','County Code':'string','Site ID':'string'}
tmp = pd.read_csv('file_name.txt', sep='|', skiprows=[1], dtype=types)
都没有用


我搜索过论坛,也做过网络搜索,看来我所做的应该是可行的。有什么想法吗?

它对对象而不是字符串有效吗?我可以在
0.11.0.dev-14a04dd
中重现这种混乱,但它似乎对master有效。在旧代码中使用
dtype=object
似乎有效。@DSM设置dtype=object确实有效,很有趣。虽然这样做有效,但我注意到有两个页脚可以忽略。通过设置skipfooter=2和dtype=object,我的“站点ID”列恢复为浮动。即使当dtype=string时也是如此!似乎dtype设置没有按我预期的方式工作(即,我不理解它)。任何解释都会很好。仅供参考:我正在使用0.11.0D类型的
str
works IIRC in>=0.12(在0.11中被破坏),但您始终可以使用
object