Pandas连接数据帧会引发ValueError

时间:2016-04-13 15:47:32

标签: python-2.7 pandas dataframe

我正在遍历许多较小的数据帧,并使用pandas.concat()将它们连接成一个数据帧。在循环过程中,会出现一条带有消息ValueError: Plan shapes are not aligned的异常。

失败的数据框包含单行(与之前的所有数据帧一样),列是其他数据帧的子集。下面是代码的示例代码段。

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数据帧类似。我有什么遗失的东西吗?

额外信息:我使用的是pandas 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

编辑2:尝试使用0.17.1和0.18.0并仍然具有相同的错误。

0 个答案:

没有答案