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

这是我要合并的 2 个数据帧。但是标签彼此不同


df1

Date        Campaign                              Sales

11/07/2020  AMZ CT BR Leather Shoes ABCDEFG1234   $10

11/07/2020  AMZ CT NB Leather Shoes ABCDEFG1234   $20

11/07/2020  AMZ OG BR Bag HGIJK567                $30

11/07/2020  AMZ OG NB Bag HGIJK567 Desktop        $40


df2

Date        Campaign                              Spend        

11/07/2020  GA BR Leather Shoes ABCDEFG1234       $5

11/07/2020  GA NB Leather Shoes ABCDEFG1234       $6

11/07/2020  GA BR Bag HGIJK567                    $7

11/07/2020  GA NB Bag HGIJK567 Desktop            $8

这是我想要的输出


df3

Date        Campaign                         Spend   Sales

11/07/2020  CT BR Leather Shoes ABCDEFG1234  $5      $10

11/07/2020  CT NB Leather Shoes ABCDEFG1234  $6      $20

11/07/2020  OG BR Bag HGIJK567               $7      $30

11/07/2020  OG NB Bag HGIJK567 Desktop       $8      $40


繁星coding
浏览 105回答 2
2回答

SMILET

我会创建一个额外的列来执行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 Costs0  AMZ CT BR Leather Shoes ABCDEFG1234    10     52  AMZ CT NB Leather Shoes ABCDEFG1234    20     64               AMZ OG BR Bag HGIJK567    30     75       AMZ OG NB Bag HGIJK567 Desktop    40     8

炎炎设计

如果我正确理解你的问题是的,你可以。但是不在其中一个数据框中的行留空。让我举个例子:如果你有两个数据框First.csv并且Second.csv如下:第一个数据框:A, B, C1, 2, 32, 3, 4第二个数据框:A, C1, 32, 4import pandas as pddf_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,   C1, 2.0, 32, 3.0, 41,    , 32,    , 4我希望这对你有帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python