首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将两个不同列数的数据组合在一起,并用和进行聚合。

将两个不同列数的数据组合在一起,并用和进行聚合。
EN

Stack Overflow用户
提问于 2020-02-21 08:42:38
回答 1查看 34关注 0票数 1

所以我有这两个数据

代码语言:javascript
复制
df1
title      URL  number         date
    a   /url-1       1   21-02-2020
    a   /url-1      10   20-02-2020
    a   /url-1      17   19-02-2020
    b   /url-2     100   21-02-2020
    b   /url-2     106   20-02-2020
代码语言:javascript
复制
df2
   URL  number         date
/url-1       5   21-02-2020
/url-1      12   20-02-2020
/url-1      50   19-02-2020
/url-3       9   21-02-2020
/url-3      11   20-02-2020

因此,我需要执行这些操作,将它们合并为1个dataframe:

1) df1和df2 (如果我错了请更正),但是我不知道如何在4列中显示结果,因为我需要按"URL“和"date”列分组(将在下面说明)。

2)聚合df1"number“和df2"number”,并将它们加在一起

这就是我想要的结果:

代码语言:javascript
复制
new_df
title      URL  number         date
    a   /url-1       6   21-02-2020
    a   /url-1      22   20-02-2020
    a   /url-1      67   19-02-2020
    b   /url-2     100   21-02-2020
    b   /url-2     106   20-02-2020
 null   /url-3       9   21-02-2020
 null   /url-3      11   20-02-2020

(非常感谢您的帮助!)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-21 09:19:32

使用熊猫合并,将“如何”选项设置为“外部”,并将“URL”和“日期”上的数据合并。

将这两个数字相加,只保留相关的列。

代码语言:javascript
复制
M = df1.merge(df2,how='outer', on=['URL','date'])
M['number'] = M.number_x.fillna(0).add(M.number_y.fillna(0))
M.filter(['title','URL','number','date'])

    title   URL number  date
0   a   /url-1  6.0 21-02-2020
1   a   /url-1  22.0    20-02-2020
2   a   /url-1  67.0    19-02-2020
3   b   /url-2  100.0   21-02-2020
4   b   /url-2  106.0   20-02-2020
5   NaN /url-3  9.0 21-02-2020
6   NaN /url-3  11.0    20-02-2020
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60334939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档