我需要像导入熊猫一样在数据框中导入Excel工作表。将read_excel
函数与dtype=object
一起使用时,我仍然会得到“解释的”值。
我在anaconda环境中使用的是Python 3.5.4,pandas 0.23.4。
我的(测试)excel工作表:
header1 header2 header3 header4 header5 header6 mixed
word11 word12 word13 word14 word15 word16 word17
word21 word22 word23 word24 word25 word26 word27
TRUE 1 FALSE 0 TRUE 1 TRUE
word41 word42 word43 word44 word45 word46 0
0 TRUE 0 TRUE TRUE 0 FALSE
1 FALSE 1 FALSE FALSE 1 1
word71 word72 word73 word74 word75 word76 word77
所以我导入并打印:
sheets_dict = pd.read_excel(reqFile, sheet_name=[1],dtype=object)
sheets_dict[list(sheets_dict.keys())[0]]
导入的数据框:
header1 header2 header3 header4 header5 header6 mixed
0 word11 word12 word13 word14 word15 word16 word17
1 word21 word22 word23 word24 word25 word26 word27
2 True 1 False 0 True 1 True
3 word41 word42 word43 word44 word45 word46 0
4 0 1 False True True 0 0
5 True False 1 0 False 1 True
6 word71 word72 word73 word74 word75 word76 word77
第1列:
对于包含True
后跟1
的列,1
也将以True
的形式加载到数据帧中。
第2列:
反之亦然:如果在该列中首先出现1
,然后出现True
,则True
将作为1
加载到数据帧中。
第3列:
False
将所有后续0
转换为False
第4列:
在column3的对面
第5/6栏:
都很好
第7列:
前一个True
将所有后续1
切换为True
,而前一个0
将所有后续False
转换为0
。
如何强制read_excel
不解释任何内容并按原样阅读Excel工作表?任何帮助将不胜感激。
答案 0 :(得分:0)
您可以强制熊猫将列类型设置为 str ,而不是以不可预测的方式将其自动转换为布尔值和整数。如果这可行,则可以插入条件,以便仅将“ TRUE”和“ FALSE”转换为布尔值,并将数字1和0转换为int类型。 转换器参数使用字典。
'df = pd.read_excel('test.xlsx', sheetname='Sheet1', header=0,
converters={'header1':str,'header2':str})'
答案 1 :(得分:0)
为了强制执行我需要的操作,我执行了以下操作:
sheets_dict = pd.read_excel(reqFile, sheet_name=[1],dtype=object)
keys = sheets_dict[list(sheets_dict.keys())[0]].keys()
values = [str] * len(keys)
convertDict = dict(zip(keys, values))
sheets_dict = pd.read_excel(reqFile, sheet_name=[1],dtype=object,converters=convertDict)
就像这样,我得到了我的Excel工作表的精确副本:
header1 header2 header3 header4 header5 header6 mixed
0 word11 word12 word13 word14 word15 word16 word17
1 word21 word22 word23 word24 word25 word26 word27
2 True 1 False 0 True 1 True
3 word41 word42 word43 word44 word45 word46 0
4 0 True 0 True True 0 False
5 1 False 1 False False 1 1
6 word71 word72 word73 word74 word75 word76 word77
唯一的缺点是我需要在工作表中阅读两次。