亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

繁星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 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號