合并两个或多个不重叠的列

编程入门 行业动态 更新时间:2024-10-27 15:24:08
本文介绍了合并两个或多个不重叠的列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

跟随这篇文章: 合并两列不重叠并创建新列

import pandas as pd df1 = pd.DataFrame([["2014", "q2", 2], ["2013", "q1", 1],], columns=('Year', 'Quarter', 'Value')) df2 = pd.DataFrame([["2016", "q1", 3], ["2015", "q1", 3]], columns=('Year', 'Quarter', 'Value')) print(df1.merge(df2, on='Year', how='outer'))

结果:

Year Quarter_x Value_x Quarter_y Value_y 0 2014 q2 2 NaN NaN 1 2013 q1 1 NaN NaN 2 2016 NaN NaN q1 3 3 2015 NaN NaN q1 3

但是我想得到这个:

Year Quarter Value 0 2014 q2 2 1 2013 q1 1 2 2016 q1 3 3 2015 q1 3

注意:这不会产生所需的结果...:(

Note: This doesn't produce the desired result... :(

print(df1.merge(df2, on=['Year', 'Quarter','Value'], how='outer').dropna()) Year Quarter Value 0 2014 q2 2 1 2013 q1 1

...使用'left'或right'或inner也不剪切。

... using 'left' or right' or inner also don't cut it.

推荐答案

p>不知道这里发生了什么,但是如果我这样做,那么如果我执行

Not sure what's happening here, but if I do

df1.merge(df2, on=['Year', 'Quarter', 'Value'], how='outer').dropna()

Year Quarter Value 0 2014 q2 2.0 1 2013 q1 1.0 2 2016 q1 3.0 3 2015 q1 3.0

您可能需要查看合并,加入&连接文档。

最直观的方式可能是 .append() :

The most 'intuitive' way for this is probably .append():

df1.append(df2) Year Quarter Value 0 2014 q2 2.0 1 2013 q1 1.0 2 2016 q1 3.0 3 2015 q1 3.0

如果您查看源代码你会发现它在幕后调用了 concat 。

If you look into the source code, you'll find it calls concat behind the scenes.

合并是有用的,适用于您具有重叠值的列的情况。

Merge is useful and intended for cases where you have columns with overlapping values.

更多推荐

合并两个或多个不重叠的列

本文发布于:2023-06-11 17:31:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/639811.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多个   两个

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!