Python 从Pandas.excel文件导入的Pandas数据框中的列未对齐
我有一个Excel电子表格,其中包含一些事务数据。我尝试将其导入熊猫数据框:Python 从Pandas.excel文件导入的Pandas数据框中的列未对齐,python,excel,pandas,Python,Excel,Pandas,我有一个Excel电子表格,其中包含一些事务数据。我尝试将其导入熊猫数据框: >>> import pandas as pd >>> xlsfile = pd.ExcelFile("/data/transactions.xls") >>> data = xlsfile.parse('data') 。。。而且,乍一看,它看起来还不错。然后我注意到一列(即“Ship To Region”)应该包含四个可能值中的一个: 。。。他们的价值观往往毫
>>> import pandas as pd
>>> xlsfile = pd.ExcelFile("/data/transactions.xls")
>>> data = xlsfile.parse('data')
。。。而且,乍一看,它看起来还不错。然后我注意到一列(即“Ship To Region”)应该包含四个可能值中的一个:
。。。他们的价值观往往毫无意义。虽然大多数情况下,这些值都会出现在正确的列中,但有数千个实例并非如此:
>>> len(data['Ship To Region'].unique())
5007
来自相邻单元格的值不知何故进入了错误的列
>>> for value in data['Ship To Region'].unique():
... print value
...
Americas
EMEA
APAC
nan
Ship To Name
Justin Bieber
Marie Curie Industries
BKS Iyengar
[...etc...]
你能看出我做错了什么吗?这确实很奇怪。你用的是什么版本的熊猫
顺便说一下,您可以使用pd.read_excel()并在一行中完成所有操作。是否尝试使用xlrd进行解析?你能改用CSV吗?谢谢@smushi。我尝试将电子表格保存为CSV,并使用Pandas的pd.read\u CSV(),但不幸的是,我得到了相同的结果。我可能最终会使用
xlrd
或openpyxl
作为中间步骤,尽管这确实感觉有点困难。谢谢@BobHaffner。我使用的是熊猫版本0.14.1。我确实尝试了pd.read\u excel(),得到了相同的结果,尽管我同意它更像Pythonic。好的,我给你的唯一建议是升级Pandas。对不起,帮不了什么忙。谢谢你的建议,@BobHaffner。我刚刚将Pandas升级到0.15.1,但仍然经历了相同的行为。最终,Pandas和Excel之间的不一致是由Excel电子表格中的不连续数据造成的。Excel筛选器中显示的值列表没有被整个工作表填充,而Pandas正在扫描所有行。哇,这真是一个糟糕的结果。:-)谢谢你的跟进