我需要将一个非常大的Excel文件读入DataFrame。该文件包含字符串,整数,浮点数和布尔数据,以及丢失的数据和完全空的行。值得注意的是,某些单元格值是从单元格公式和/或VBA导出的-尽管从理论上讲这不会影响任何内容。
如标题所示,pandas有时将布尔值读取为float或int 1和0,而不是True和False。它似乎与空行的数量和其他数据的类型有关。为了简单起见,我只链接一个复制问题的2页Excel文件。 Boolean_1.xlsx
这是代码:
import pandas as pd
df1 = pd.read_excel('Boolean_1.xlsx','Sheet1')
df2 = pd.read_excel('Boolean_1.xlsx','Sheet2')
print(df1, '\n' *2, df2)
这是印刷品。主要注意行ZBA,该行在两个工作表中具有相同的值,但在DataFrames中具有不同的值:
Name stuff Unnamed: 1 Unnamed: 2 Unnamed: 3
0 AFD a dsf ads
1 DFA 1 2 3
2 DFD 123.3 41.1 13.7
3 IIOP why why why
4 NaN NaN NaN NaN
5 ZBA False False True
Name adslfa Unnamed: 1 Unnamed: 2 Unnamed: 3
0 asdf 6.0 3.0 6.0
1 NaN NaN NaN NaN
2 NaN NaN NaN NaN
3 NaN NaN NaN NaN
4 NaN NaN NaN NaN
5 ZBA 0.0 0.0 1.0
我还能够在我实际上正在处理的大文件中(是)获得整数1和0的输出,但是无法轻松地复制它。
是什么原因导致这种不一致,有没有办法强迫熊猫读取应该读取的布尔值?
斯蒂芬大帝
相关分类