大熊猫在2个数据框中的映射值和外连接+聚合值

中华F

您好,我有这两个数据框

df_1
title      URL  number         date
    a   /url-1       1   21-02-2020
    a   /url-1      10   20-02-2020
    a   /url-1      17   18-02-2020
    b   /url-2     100   21-02-2020
    b   /url-2     106   20-02-2020
df_2
   URL  number         date
/url-1       5   21-02-2020
/url-1      12   20-02-2020
/url-1      50   19-02-2020
/url-2      71   17-02-2020
/url-3       9   21-02-2020
/url-3      11   20-02-2020

因此,我需要执行以下操作将它们组合为1个数据帧:

1)添加新的列调用df_2 [“ title”]以将df_2 [“ URL”]值映射到df_1 [“ title”]中的值

2)将两个数据框外部连接在一起

3)按“日期”汇总df_1 [“ number”]和df_2 [“ number”]并将它们加在一起

这是我想要的结果:

new_df
title      URL  number         date
    a   /url-1       6   21-02-2020
    a   /url-1      22   20-02-2020
    a   /url-1      50   19-02-2020
    a   /url-1      17   18-02-2020
    b   /url-2     100   21-02-2020
    b   /url-2     106   20-02-2020
    b   /url-2      71   17-02-2020
 null   /url-3       9   21-02-2020
 null   /url-3      11   20-02-2020

注意事项:

A)我不能仅仅在“ URL”和“ date”上进行外部联接,因为您会注意到在df_2中;第3行(19-02-2020)在df_1中对于“ / url- 1“。同样的问题也适用于df_2;第4行

B)如果我可以实现new_df的目​​标,则我不介意跳过操作1(如上粗体所示)

非常感谢您的帮助!:)

耶斯列尔

Series.map与一起使用DataFrame.drop_duplicates,然后将新列用于外部联接,最后一sum列:

df_2["title"] = df_2["URL"].map(df_1.drop_duplicates('URL').set_index('URL')["title"])

df = df_1.merge(df_2, on=['title','URL','date'], how='outer', suffixes=('','_'))
df['number'] = df['number'].add(df.pop('number_'), fill_value=0)
print (df)
  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    17.0  18-02-2020
3     b  /url-2   100.0  21-02-2020
4     b  /url-2   106.0  20-02-2020
5     a  /url-1    50.0  19-02-2020
6     b  /url-2    71.0  17-02-2020
7   NaN  /url-3     9.0  21-02-2020
8   NaN  /url-3    11.0  20-02-2020

最后,如果需要的话,汇总sum-因为缺少值是必要的,请用一些不丢失的值替换值:

df = (df.fillna('tmp')
         .groupby(['URL', 'date', 'title'], as_index=False)['number']
         .sum()
         .replace({'tmp':np.nan})
         .reindex(df.columns, axis=1))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

替换大熊猫数据框中的列值

来自分类Dev

大熊猫:根据一列中的相似值,使用多个数据框中的值填充数据框中的空列

来自分类Dev

聚合字典中的值

来自分类Dev

大熊猫,如何按列值过滤数据框

来自分类Dev

在大熊猫值过滤数据框保留为NaN

来自分类Dev

大熊猫:合并数据框并替换值

来自分类Dev

大熊猫:从现有的列值创建一个新的数据框

来自分类Dev

如何通过规则将两个大熊猫加入数据框包含值

来自分类Dev

mongodb聚合多个值

来自分类Dev

跨行 dplyr 的聚合值

来自分类Dev

对聚合值 SQL 的操作

来自分类Dev

多字值问题的聚合

来自分类Dev

大熊猫数据框,按列比较2组的字符串值

来自分类Dev

如何在数据框的现有值中添加逗号?大熊猫

来自分类Dev

大熊猫遍历列以查找文本匹配项,一旦找到,则比较两个数据框中的相邻行值<>

来自分类Dev

大熊猫:使用来自单独数据框中一个单元格的值填充数据框列中的所有行

来自分类Dev

大熊猫数据帧的插值

来自分类Dev

在ElasticSearch中聚合不同的值

来自分类Dev

如何聚合火花数据框中 2 列的值

来自分类Dev

聚合数据框的 ggplot 缺失值

来自分类Dev

大熊猫-根据多行中的值将汇总列数据的行添加到数据框中

来自分类Dev

比较2个数据框熊猫,返回错误值

来自分类Dev

弹性搜索聚合组值

来自分类Dev

elasticsearch唯一值聚合

来自分类Dev

MongoDB查询多个值的聚合

来自分类Dev

Postgresql 基于日期的聚合值

来自分类Dev

如何遍历大熊猫数据框,并在整个行中仅保留具有相同值的行?

来自分类Dev

熊猫使用其他2个查找数据框中的值在一个数据框中提取数据

来自分类Dev

dplyr 中的 Sum() 和聚合:NA 值

Related 相关文章

热门标签

归档