第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

檢查是否在其他 Pandas 數(shù)據(jù)框中找到了兩列值

檢查是否在其他 Pandas 數(shù)據(jù)框中找到了兩列值

慕哥6287543 2021-11-02 16:36:08
設(shè)置我有 2 個熊貓 dfs(df1 和 df2),其中包含一些重疊行和一些非重疊行。兩個 dfs 都有列order_id和shop.現(xiàn)在,如果對的組合DF2排排DF1比賽order_id和shop,然后什么。但是,如果一個DF1排不上的組合DF2行匹配order_id和shop,那么這個DF1行應(yīng)添加到DF2。例子df2 是這樣的,    order_id    shop0     12345     'NL'1     45678     'FR'2     12345     'DE'3     34567     'NL'現(xiàn)在如果df1這樣,    order_id    shop0     12345     'NL'1     45678     'FR'然后什么都沒有。但如果df1那樣的話,        order_id    shop0       12345       'NL'1       99999       'FR'2       12345       'UK'那么行1和2應(yīng)該被添加到df2即使shop值第1行order_id的第2行已經(jīng)在df2。結(jié)果df2應(yīng)該是這樣的,    order_id    shop0     99999     'FR'1     12345     'UK'        2     12345     'NL'3     45678     'FR'4     12345     'DE'5     34567     'NL' 請注意,order_id列是 int,shop列是 string。因此,在圖形方面,我想要實現(xiàn)的目標(biāo)如下:代碼我創(chuàng)建了一條怪異的線,然后它并沒有真正起作用......到目前為止,我有,result_df = df1[(~df1['order_id'].astype(str).isin(df2['order_id'].astype(str)))]我該如何解決這個問題?額外的如果df1這樣,        order_id    shop0       12345       'NL'1       99999       'FR'2       12345       'UK'我如何df1與df2這樣的我比較df3,        order_id    shop0       99999       'FR'1       12345       'UK'
查看完整描述

2 回答

?
拉莫斯之舞

TA貢獻(xiàn)1820條經(jīng)驗 獲得超10個贊

如果所有的行都是獨(dú)特的使用concat有drop_duplicates:


df = pd.concat([df2, df1], ignore_index=True).drop_duplicates()

print (df)

   order_id  shop

0     12345  'NL'

1     45678  'FR'

2     12345  'DE'

3     34567  'NL'

5     99999  'FR'

6     12345  'UK'

如果不是唯一的過濾器不等于行merge同indicator=True,然后concat到df2:


df3 = df1.merge(df2, how='left', indicator=True).query('_merge == "left_only"')[df1.columns]

df = pd.concat([df2, df3], ignore_index=True)


查看完整回答
反對 回復(fù) 2021-11-02
?
小唯快跑啊

TA貢獻(xiàn)1863條經(jīng)驗 獲得超2個贊

看起來您希望創(chuàng)建一組所有可能的組合?如果是這樣,您可以使用以下方法創(chuàng)建唯一對:


import pandas as pd


data1 = {'order_id': [12345, 45678, 78901, 12345, 12901, 12345], 'shop': ['NL', 'FR', 'AB', 'AB', 'NL', 'NL']}

df1 = pd.DataFrame(data=data1)


data2= {'order_id': [12345, 45678, 12345, 34567], 'shop': ['NL', 'FR', 'DE', 'NL']}

df2 = pd.DataFrame(data=data2)


df3 = df1

df3['Combi'] = df3['order_id'].astype('str') + df3['shop']

df3.drop_duplicates('Combi', inplace=True)

http://img1.sycdn.imooc.com//6180f8b20001217202090243.jpghttp://img1.sycdn.imooc.com//6180f8b80001a64f02060215.jpg

查看完整回答
反對 回復(fù) 2021-11-02
  • 2 回答
  • 0 關(guān)注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號