【发布时间】:2018-07-12 02:30:45
【问题描述】:
在读取 excel 时,在指定 dtype 和 nrows 时,我难以定义参数。
我们以这个以 excel .xlsx 格式保存的小表格为例。 'col1' 数字用 0 填充。
col1 col2
01 a
02 b
03 c
04 d
第一个问题,我想阅读整个表格但保留填充。我尝试使用 dtype 定义为 object 或 str,并使用转换器(如下)。 dtype 转换为 object,但是不保留填充。有没有办法做到这一点?
pd.read_excel(path, sheetname=0, dtype={'col1': object}, nrows=5)
pd.read_excel(path, sheetname=0, converters={'col1':lambda x: str(x)}, nrows=5)
第二个问题,我尝试使用 nrows(如下)提取数据帧的一个子集。但是,这根本不起作用,仍然拉出整个表。
pd.read_excel(path, sheetname=0, nrows=2)
对于这两种情况,它在pd.read_csv 中都可以正常工作
我正在使用 pandas v0.20.3。
【问题讨论】:
-
如果您在 excel 中格式化某些内容并不意味着存储在 excel 文件中的值实际上是“01”。将其保存为 csv 并在记事本中打开。我的猜测是你不应该看到“01”而是“1”
-
好的,注意,nrows 问题如何?这是一个错误吗?
-
nrows 适用于 pandas v 23 而您正在使用 v 20