Pandas concat给出错误ValueError:计划形状未对齐

Lt.*_*0st 38 python concat pandas

我对熊猫很新,我试图连接一组数据帧,我收到这个错误:

ValueError: Plan shapes are not aligned
Run Code Online (Sandbox Code Playgroud)

我的理解.concat()是它会在列相同的地方加入,但对于那些找不到它的人来说,它将填充NA.这似乎不是这种情况.

继承人的声明:

dfs = [npo_jun_df, npo_jul_df,npo_may_df,npo_apr_df,npo_feb_df]
alpha = pd.concat(dfs)
Run Code Online (Sandbox Code Playgroud)

use*_*082 85

如果它有帮助,当我尝试连接两个数据帧时,我也遇到了这个错误(截至撰写本文时,这是我可以在google上找到的唯一相关命中,而不是源代码).

我不知道这个答案是否会解决OP的问题(因为他/她没有发布足够的信息),但对我来说,这是因为当我尝试使用列进行concat数据框化df1['A', 'B', 'B', 'C'](参见重复的列标题?)df2带有列的数据框['A', 'B'].可以理解的是,重复导致大熊猫晃动.更改df1['A', 'B', 'C'](即删除其中一个重复列),一切正常.

  • 有关消除重复列名的帮助,请尝试使用Gene Burinsky对此问题的回答的"df = df.loc [:,~df.columns.duplicated()]"[链接](http://stackoverflow.com/questions/14984119 /蟒-大熊猫-除去重复的柱) (9认同)

小智 6

我最近也收到了此消息,我发现像上面的用户@jason@ user3805082一样,在我尝试使用的数百个数据框中,有多个重复的列concat,每个列都有数十个神秘的varnames。手动搜索重复项是不切实际的。

万一其他人有同样的问题,我写了下面的函数可能会有所帮助。

def duplicated_varnames(df):
    """Return a dict of all variable names that 
    are duplicated in a given dataframe."""
    repeat_dict = {}
    var_list = list(df) # list of varnames as strings
    for varname in var_list:
        # make a list of all instances of that varname
        test_list = [v for v in var_list if v == varname] 
        # if more than one instance, report duplications in repeat_dict
        if len(test_list) > 1: 
            repeat_dict[varname] = len(test_list)
    return repeat_dict
Run Code Online (Sandbox Code Playgroud)

然后,您可以遍历该命令以报告有多少重复项,删除重复的变量或以某种系统的方式对其进行重命名。

  • 您可以通过以下方式识别重复列:`df.loc[:,df.columns.duplicate()]` (3认同)