【发布时间】:2016-04-19 21:01:22
【问题描述】:
我正在读取一个大块的固定宽度文本文件并将数据导出为
.csv。因为 pandas.read_fwf 不允许指定 dtypes,所以我是
想知道还有什么其他方法可以强制列成为字符串。这
原因是熊猫将某些列推断为浮动,即使它们不是,并且
我不想在列中使用.0。
使用data[column] = data[column].astype(str) 无济于事,因为它不会得到
摆脱小数。 将 float64 dtype 的列转换为 int 不起作用
要么,因为 NA 无法转换。有什么想法吗?
这是我的代码的 sn-p:
dat = pd.read_fwf(file_to_read,colspecs=cols,header=None,chunksize=100000,names=header)
#First chunk
data.info()
Int64Index: 100000 entries, 0 to 99999
Columns: 562 entries,
dtypes: float64(405), int64(4), object(153)
memory usage: 429.5+ MB
for column in data.columns:
if data[column].dtype == 'float64':
data[column] = data[column].astype(int)
else:
pass
我可以做str().replace('.0',''),但我想找到一个比
遍历需要大量时间的列。
【问题讨论】:
-
它确实支持 dtype 请查看文档pandas.pydata.org/pandas-docs/stable/generated/…