Python 2.7 熊猫串接数据帧会引发ValueError
我正在遍历许多较小的数据帧,并使用Python 2.7 熊猫串接数据帧会引发ValueError,python-2.7,pandas,dataframe,Python 2.7,Pandas,Dataframe,我正在遍历许多较小的数据帧,并使用pandas.concat()将它们连接到单个数据帧中。在循环的中间,使用消息 ValueError引发异常:计划形状未对齐 失败的数据帧包含一行(与之前的所有数据帧一样),列是另一个数据帧的子集。下面是代码的一个示例片段 import pandas as pd df, failed = pd.DataFrame(), pd.DataFrame() for _file in os.listdir(file_dir): _tmp = pd.read_cs
pandas.concat()
将它们连接到单个数据帧中。在循环的中间,使用消息<代码> ValueError引发异常:计划形状未对齐
失败的数据帧包含一行(与之前的所有数据帧一样),列是另一个数据帧的子集。下面是代码的一个示例片段
import pandas as pd
df, failed = pd.DataFrame(), pd.DataFrame()
for _file in os.listdir(file_dir):
_tmp = pd.read_csv(file_dir + _file)
try:
df= pd.concat([df, _tmp])
except ValueError as e:
if 'Plan shapes are not aligned' in str(e):
failed = pd.concat([failed, _tmp])
print [x for x in failed.columns if x not in df.columns]
print len(df), len(failed)
我最终得到了结果
Out[10]: []
118 1
检查故障总是相同的数据帧,因此数据帧一定是问题所在。打印出我得到的数据帧
0 timestamp actual average_estimate median_estimate \
0 1996-11-14 01:30:00 2.300000 2.380000 2.400000
0 estimate1 estimate2 estimate3 estimate4 \
0 2.400000 2.200000 2.500000 2.600000
0 estimate5
0 2.200000
其格式与其他串联数据帧和df
数据帧类似。有什么我遗漏的吗
额外信息:我正在使用熊猫0.16.0
编辑:下面的完整堆栈跟踪,带有匿名修改
Traceback (most recent call last):
File "C:\Users\<user>\Documents\GitHub\<environment>\lib\site-packages\IPython\core\interactiveshell.py", line 3066, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-2-48539cb93d64>", line 37, in <module>
df = pd.concat([df, _tmp])
File "C:\Users\<user>\Documents\GitHub\<environment>\lib\site-packages\pandas\tools\merge.py", line 755, in concat
return op.get_result()
File "C:\Users\<user>\Documents\GitHub\<environment>\lib\site-packages\pandas\tools\merge.py", line 926, in get_result
mgrs_indexers, self.new_axes, concat_axis=self.axis, copy=self.copy)
File "C:\Users\<user>\Documents\GitHub\<environment>\lib\site-packages\pandas\core\internals.py", line 4040, in concatenate_block_managers
for placement, join_units in concat_plan]
File "C:\Users\<user>\Documents\GitHub\<environment>\lib\site-packages\pandas\core\internals.py", line 4258, in combine_concat_plans
raise ValueError("Plan shapes are not aligned")
ValueError: Plan shapes are not aligned
回溯(最近一次呼叫最后一次):
文件“C:\Users\\Documents\GitHub\\lib\site packages\IPython\core\interactiveshell.py”,第3066行,运行代码
exec(代码对象、self.user\u全局、self.user\n)
文件“”,第37行,在
df=pd.concat([df,_tmp])
concat中的文件“C:\Users\\Documents\GitHub\\lib\site packages\pandas\tools\merge.py”,第755行
返回操作获取结果()
文件“C:\Users\\Documents\GitHub\\lib\site packages\pandas\tools\merge.py”,第926行,在get\U结果中
mgrs\u索引器,self.new\u轴,concat\u轴=self.axis,copy=self.copy)
文件“C:\Users\\Documents\GitHub\\lib\site packages\pandas\core\internals.py”,第4040行,位于连接块管理器中
对于安置,请在concat_平面图中加入_单元]
文件“C:\Users\\Documents\GitHub\\lib\site packages\pandas\core\internals.py”,第4258行,在combine\u concat\u计划中
提升值错误(“平面形状未对齐”)
ValueError:平面形状未对齐
编辑2:尝试使用0.17.1和0.18.0,但仍有相同的错误 @Alexander我已经添加了完整的堆栈跟踪。了解
df.shape
和failed.shape
会很有用。您可能需要升级pandas的版本,并查看错误是否仍然存在。df.shape
产生(118,65)
和失败。shape
产生(1,9)
这两个都是预期的。看起来索引在列标题和数据行都重复了。@Hun重复代码,但将忽略\u索引
标志设置为真
仍然失败。