首页 > 解决方案 > 如何将行从一个数据帧附加到另一个具有不同列结构的数据帧

问题描述

我有两个 excel 文件,第一个有 34 列,第二个有 19 列,第一个有所有这 19 列,但是如果我添加一些空列,我可以得到第一个文件的结构。我想将第二个文件中的行附加到第一个文件

我添加了空列以获得与第一个相同的结构,但是当我尝试合并两个数据框时,我得到了:ValueError:计划形状未对齐(可能是因为那些空列没有名称)

merged = pd.read_excel(r'D:\Incident in detail.xlsx')
resolved = pd.read_excel(r'D:\Data set\Resolved Incident.xlsx')
for i in range(13,26):                                                     
    resolved.insert(i,"","",allow_duplicates=True)                         
resolved.insert(33,"","", allow_duplicates=True)
resolved_planning = resolved[resolved['Priority'] == '5 - Planning']
merged.append(resolved_planning, ignore_index = True, sort = False)
merged.to_excel(r'D:\test.xlsx', index = False)

我也尝试使用 itertuples() 但没有得到任何关于如何将列表作为一行附加到数据框中的信息。

编辑1:

R中有一个库 dplyr ,其中有一个方法 bind_rows() 可以按列名附加行示例

标签: pythonexcelpandasnumpy

解决方案


我不知道它是否有效,但这就是我所做的:

new_res = pd.DataFrame(data = resolved_planning.values, columns = merged.columns)
new_merged=merged.append(new_res, ignore_index = True, sort = False)

我用第一个数据帧的标题和第二个数据帧的 (resolved_planning) 值创建了一个新数据帧 (new_res),然后附加了两个数据帧。


推荐阅读