Pandas 合并两个具有不同列的数据框

2023-12-10

我肯定在这里错过了一些简单的东西。尝试合并 pandas 中几乎具有相同列名的两个数据框,但右侧数据框有一些左侧没有的列,反之亦然。

>df_may

  id  quantity  attr_1  attr_2
0  1        20       0       1
1  2        23       1       1
2  3        19       1       1
3  4        19       0       0

>df_jun

  id  quantity  attr_1  attr_3
0  5         8       1       0
1  6        13       0       1
2  7        20       1       1
3  8        25       1       1

我尝试过使用外部连接进行连接:

mayjundf = pd.DataFrame.merge(df_may, df_jun, how="outer")

但这会产生:

Left data columns not unique: Index([....

我还指定了要加入的单个列(on = "id",例如),但是会重复除以下之外的所有列id like attr_1_x, attr_1_y,这并不理想。我还将整个列列表(有很多)传递给on:

mayjundf = pd.DataFrame.merge(df_may, df_jun, how="outer", on=list(df_may.columns.values))

其结果是:

ValueError: Buffer has wrong number of dimensions (expected 1, got 2)

我缺少什么?我想要一个 df 附加所有行,并且attr_1, attr_2, attr_3可能的情况下已填充,未出现的情况下为 NaN。这似乎是一个非常典型的数据处理工作流程,但我被困住了。


我认为在这种情况下concat是你想要的:

In [12]:

pd.concat([df,df1], axis=0, ignore_index=True)
Out[12]:
   attr_1  attr_2  attr_3  id  quantity
0       0       1     NaN   1        20
1       1       1     NaN   2        23
2       1       1     NaN   3        19
3       0       0     NaN   4        19
4       1     NaN       0   5         8
5       0     NaN       1   6        13
6       1     NaN       1   7        20
7       1     NaN       1   8        25

通过传递axis=0在这里,您将 df 堆叠在一起,我相信这就是您想要的然后生成的NaN其各自的 dfs 中不存在的值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas 合并两个具有不同列的数据框 的相关文章

随机推荐

  • Google Plus 分享未从头部选取元标签

    我正在尝试在我的页面上实现 Google Plus 共享 但不是从元标记中选择标题 而是从共享对话框标题中的 url 中选择页面标题 我还需要添加其他内容吗 a href https plus google com share url go
  • 使用 Wix 卸载 MSI 之前的自定义操作

    我正在使用 Wix 编写我自己的 MSI 安装程序 我只需要在卸载产品之前运行自定义操作 但是before所有注册表值或文件都将被删除 我做了以下操作 只是为了尝试
  • 如何在Column(或任何可滚动视图)内的FlutterMap(flutter_map包)上使用手势?

    我遇到的问题是 我在可滚动列中有一个地图 作为地图 我使用 FlutterMap flutter map 包 这是颤振的传单 在谷歌地图中 有一个通过使用 gestureRecognizers 来解决这个问题的解决方案 谷歌地图包同样问题的
  • 如何摆脱多个嵌套的 for 循环?

    我有一个 Python 3 2 脚本 可以搜索具有我想要的属性的点 但它有一个丑陋的部分 for x in range 0 p for y in range 0 p for z in range 0 p for s in range 0 p
  • AFNetworking 2.0 上的缓存

    所以这就是交易 我最近开始使用 AFNetworking 在开始时使用以下代码下载一些文件 NSMutableURLRequest rq api requestWithMethod GET path YOUR URL TO FILE par
  • 计算目录中具有给定扩展名的文件数量 - C++?

    在 C 中是否可以计算目录中具有给定扩展名的文件的数量 我正在编写一个程序 最好做这样的事情 伪代码 if file extension foo num files for int i 0 i lt num files i do somet
  • Android onCreate() 方法在设备旋转时调用两次。 (工业控制系统)

    我正在开发 Android 平板电脑应用程序 我必须管理应用程序方向 我遇到一个问题 每次旋转设备时 onCreate 都会被调用 我在 Honeycomb 3 1 上修复了这个问题 方法是在 Manifest xml 文件中的活动标记处设
  • 如何将多个图像和文本合并为单个图像?

    我在 div 中有多个 PNG 图像 这些图像是 PNG 并根据用户选择的自定义选项作为单个图像呈现给用户 此外 添加文本也可以作为其他功能启用 它允许带有文本的 div 添加到这些图像的上方 现在我想生成一个将多个图像和文本组合在一起的图
  • 从空格分隔的文件中删除文件头匹配的列

    我有一个以空格分隔的输入文本文件 我想使用 sed 或 awk 删除列标题为 size 的列 输入文件 id quantity colour shape size colour shape size colour shape size 1
  • Bash:删除名称末尾的数字。

    我有这样的文件 外星人头骨 2224154 jpg 雪鸟 红色 箭头 雷鸟 蓝色 天使 43264 jpg 死亡空间 album 1053 jpg 如何在 bash 中删除 jpg 之前的 ID 字符串 id 始终由前面的单词 分隔 谢谢
  • 以编程方式启用/禁用硬件设备[重复]

    这个问题在这里已经有答案了 可能的重复 NET 如何禁用系统设备 Win32 API 函数以编程方式启用 禁用设备 在 C 中 有没有办法以编程方式禁用和重新启用设备 我正在寻找与您进入设备管理器并右键单击设备并禁用或启用它时发生的功能基本
  • python 按值列出而不是按引用列出[重复]

    这个问题在这里已经有答案了 让我们举个例子 a help copyright credits license b a b append XYZ b help copyright credits license XYZ a help copy
  • 我的 WordPress 网站上的 footer.php 文件出现问题

    我使用了调试 收到以下错误 PHP Fatal error Uncaught TypeError ceil Argument 1 num must be of type int float string Give in var www ht
  • 是否可以让任何数据流块类型发送多个中间结果作为单个输入的结果?

    是否可以得到TransformManyBlocks 在创建中间结果时将其发送到下一步 而不是等待整个结果IEnumerable
  • Scala 将多行字符串转换为 BigInt

    我正在尝试使用以下代码从字符串中解析 100 个 50 位数字 val input 37107287533902102798797998220837590246510135740250 463769376774900097126481248
  • 谷歌 reCaptcha IE8

    Internet Explorer 8 支持 Google reCaptcha v2 吗 如果没有 是否有任何合适的 Internet Explorer 8 兼容验证码 我发现 reCaptcha 代码尝试使用 getContext 方法的
  • 在应用程序之间发送套接字c#

    我想知道是否有一种方法 您有一个 net 应用程序名称 appA 它接收 tcp 套接字连接 然后根据某些规则将套接字连接发送到另一个 net 应用程序名为 appB 我知道这违反了很多安全和良好实践 但如果可能的话会很有趣 Proxy 一
  • 动态 LiveTile - 添加背景图像?

    在我的 Windows Phone 7 应用程序中使用动态磁贴 效果非常好 我现在正在尝试创建动态动态图块 但无法显示背景图像 当使用下面的代码时 我只得到一个黑色的瓷砖 显示我添加的文本 但不显示背景图像 图像 构建操作 设置为 内容 有
  • WPF 背景两种色调

    我正在尝试做一些如此简单的事情 但无法取得任何成果 我一直在网上搜寻 试图找到一个清晰的示例或少量信息 但我找到的每一篇文章都显示了完全相同的简单示例 我想要做的就是为列表框项目设置一个背景 该背景是两种色调 但它们之间没有渐变混合 到目前
  • Pandas 合并两个具有不同列的数据框

    我肯定在这里错过了一些简单的东西 尝试合并 pandas 中几乎具有相同列名的两个数据框 但右侧数据框有一些左侧没有的列 反之亦然 gt df may id quantity attr 1 attr 2 0 1 20 0 1 1 2 23