2 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
我會(huì)創(chuàng)建一個(gè)額外的列來執(zhí)行mergeon。據(jù)我所知,合并是根據(jù)產(chǎn)品名稱完成的,沒有首字母縮略詞。
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']]
加入后,我們將從第一個(gè) Campaign 列 (Campaign_x) 中刪除重復(fù)項(xiàng),最后選擇所需的列。我沒有添加該date列,因?yàn)樗鼘?duì)這個(gè)問題沒有影響。輸出:
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

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果我正確理解你的問題
是的,你可以。但是不在其中一個(gè)數(shù)據(jù)框中的行留空。
讓我舉個(gè)例子:如果你有兩個(gè)數(shù)據(jù)框First.csv并且Second.csv如下:
第一個(gè)數(shù)據(jù)框:
A, B, C
1, 2, 3
2, 3, 4
第二個(gè)數(shù)據(jù)框:
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).
合并兩個(gè)數(shù)據(jù)框。df_row_merged 將如下所示:
A, B, C
1, 2.0, 3
2, 3.0, 4
1, , 3
2, , 4
我希望這對(duì)你有幫助。
添加回答
舉報(bào)