簡體   English   中英

如果熊貓中的標簽不相同,我可以組合兩行的值嗎

[英]Can I combine values of two rows if labels are not identical in pandas

這是我想合並的 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

 

我會創建一個額外的列來執行merge 就我所見,合並是根據沒有首字母縮略詞的產品名稱完成的。

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

如果我正確理解你的問題
是的你可以。 但是不在數據幀之一中的行留空。
讓我舉個例子:如果你有兩個數據First.csvSecond.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

我希望這對你有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM