Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从Pandas.excel文件导入的Pandas数据框中的列未对齐_Python_Excel_Pandas - Fatal编程技术网

Python 从Pandas.excel文件导入的Pandas数据框中的列未对齐

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”)应该包含四个可能值中的一个: 。。。他们的价值观往往毫

我有一个Excel电子表格,其中包含一些事务数据。我尝试将其导入熊猫数据框:

>>> 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正在扫描所有行。哇,这真是一个糟糕的结果。:-)谢谢你的跟进