【问题标题】:plan shapes issue in dataframe concat数据框 concat 中的计划形状问题
【发布时间】:2019-03-09 10:35:40
【问题描述】:

我正在尝试连接数据帧 df

到数据框 df_train

在每次迭代中

因为我事先不知道 df 的类别,所以我很难达到如下所示的预期结果

我尝试了很多方法,包括

df_train = pd.concat([df_train,df],axis=0,ignore_index=True,sort=False)

df_train = df_train.append(df,sort=False)

但是我得到了

ValueError: Plan shapes are not aligned

不知道我做错了什么。任何帮助将不胜感激。

更新:仅当我使用

将分类数据转换为数字时才存在此问题
df = pd.get_dummies(df,prefix_sep='', prefix='')

然而

df=pd.get_dummies(df) #does not pose same issue

【问题讨论】:

    标签: python python-3.x pandas


    【解决方案1】:

    复制您的图像数据:

    df = pd.DataFrame([
        [1,0,23,0,0,1,0],
        [1,1,65,0,1,0,1],
        [4,2,34,1,0,0,0]
    ], columns=['Iteration', 'Player', 'Result', 'cat1', 'cat2', 'cat3', 'cat4'])
    
    df_train = pd.DataFrame([
        [2,54,0,0,0,1,0],
        [2,87,1,0,1,0,1],
        [2,78,2,1,0,0,0]
    ], columns=['Iteration','Result','Player', 'cat3', 'cat1', 'cat9', 'cat8'])
    
    df.head()
        Iteration   Player  Result  cat1    cat2    cat3    cat4
    0   1   0   23  0   0   1   0
    1   1   1   65  0   1   0   1
    2   4   2   34  1   0   0   0
    
    df_train.head()
        Result  Player  cat3    cat1    cat9    cat8
    0   2   54  0   0   0   1   0
    1   2   87  1   0   1   0   1
    2   2   78  2   1   0   0   0
    

    现在,申请merge

    df3 = df_train.merge(df, how = 'outer', on = ['Iteration','Player','Result'])
    
    Out:
    Iteration   Player  Result  cat1    cat2    cat3    cat4    cat9    cat8
    0   1   0   23  0   0.0 1   0.0 NaN NaN
    1   1   1   65  0   1.0 0   1.0 NaN NaN
    2   4   2   34  1   0.0 0   0.0 NaN NaN
    3   2   0   54  0   NaN 0   NaN 1.0 0.0
    4   2   1   87  1   NaN 0   NaN 0.0 1.0
    

    【讨论】:

    • MergeError: 没有要执行合并的通用列。合并选项:left_on=None、right_on=None、left_index=False、right_index=False
    • @SachinHegde 您能否以文本形式提供您的示例数据?然后我可以在我的电脑上测试。从图片我无法复制和粘贴
    • @SachinHegde 对不起,我也应该更明确一点。将问题中的图像替换为文本数据,例如可以是 df.head(3) 的输出
    • 非常感谢您的帮助,再次使用您要查找的格式更新代码..
    • @SachinHegde 测试我最后的建议。我在merge 中添加on 条件。如果这不起作用,我无法帮助你 =/
    猜你喜欢
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 2019-06-03
    • 2020-08-12
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多