为了账号安全,请及时绑定邮箱和手机立即绑定

如果熊猫中的标签不相同,我可以合并两行的值吗

如果熊猫中的标签不相同,我可以合并两行的值吗

繁星coding 2023-06-13 17:06:31
这是我要合并的 2 个数据帧。但是标签彼此不同df1Date        Campaign                              Sales11/07/2020  AMZ CT BR Leather Shoes ABCDEFG1234   $1011/07/2020  AMZ CT NB Leather Shoes ABCDEFG1234   $2011/07/2020  AMZ OG BR Bag HGIJK567                $3011/07/2020  AMZ OG NB Bag HGIJK567 Desktop        $40df2Date        Campaign                              Spend        11/07/2020  GA BR Leather Shoes ABCDEFG1234       $511/07/2020  GA NB Leather Shoes ABCDEFG1234       $611/07/2020  GA BR Bag HGIJK567                    $711/07/2020  GA NB Bag HGIJK567 Desktop            $8这是我想要的输出df3Date        Campaign                         Spend   Sales11/07/2020  CT BR Leather Shoes ABCDEFG1234  $5      $1011/07/2020  CT NB Leather Shoes ABCDEFG1234  $6      $2011/07/2020  OG BR Bag HGIJK567               $7      $3011/07/2020  OG NB Bag HGIJK567 Desktop       $8      $40
查看完整描述

2 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

我会创建一个额外的列来执行mergeon。据我所知,合并是根据产品名称完成的,没有首字母缩略词。


df1['Campaign_j'] = df1['Campaign'].map(lambda x: ' '.join(x.split()[3:]))

df2['Campaign_j'] = df2['Campaign'].map(lambda x: ' '.join(x.split()[2:]))

print(df1)

print(df2)

df3 = df1.merge(df2,how='left',on=['Campaign_j'],suffixes=('','_x')).drop_duplicates('Campaign_x')[['Campaign','Sales','Spend']]

加入后,我们将从第一个 Campaign 列 (Campaign_x) 中删除重复项,最后选择所需的列。我没有添加该date列,因为它对这个问题没有影响。输出:


                              Campaign Sales Costs

0  AMZ CT BR Leather Shoes ABCDEFG1234    10     5

2  AMZ CT NB Leather Shoes ABCDEFG1234    20     6

4               AMZ OG BR Bag HGIJK567    30     7

5       AMZ OG NB Bag HGIJK567 Desktop    40     8


查看完整回答
反对 回复 2023-06-13
?
炎炎设计

TA贡献1808条经验 获得超4个赞

如果我正确理解你的问题

是的,你可以。但是不在其中一个数据框中的行留空。

让我举个例子:如果你有两个数据框First.csv并且Second.csv如下:

第一个数据框:


A, B, C

1, 2, 3

2, 3, 4

第二个数据框:


A, C

1, 3

2, 4

import pandas as pd

df_a = pd.read_csv('First.csv')

df_b = pd.read_csv('Second.csv')


您可以使用:


df_row_merged = pd.concat([df_a, df_b], ignore_index=True).

合并两个数据框。df_row_merged 将如下所示:


A, B,   C

1, 2.0, 3

2, 3.0, 4

1,    , 3

2,    , 4

我希望这对你有帮助。


查看完整回答
反对 回复 2023-06-13
  • 2 回答
  • 0 关注
  • 78 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信