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

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

Pandas:檢查兩個數(shù)據(jù)框的匹配值,然后根據(jù)標簽填充一行

Pandas:檢查兩個數(shù)據(jù)框的匹配值,然后根據(jù)標簽填充一行

紅顏莎娜 2021-06-04 15:50:31
我在大學(xué)期間主要使用 MATLAB 作為數(shù)學(xué)專業(yè),我的編程只是構(gòu)建數(shù)學(xué)方程和建?!,F(xiàn)在我一直在學(xué)習(xí)使用 Python,尤其是 Pandas。我試圖在一個數(shù)據(jù)幀的一列中搜索值,并將它們與不同數(shù)據(jù)幀的一列中的值進行匹配。如果它們匹配,我希望它們給原始數(shù)據(jù)框一個標簽。例如,我有我的第一列員工,我想弄清楚 aliceB 在我的第一個數(shù)據(jù)框中是忙碌還是非忙碌,并在 col3 中進行標簽。df1 = {"col1":["aliceA", "aliceB", "aliceC"], "col2":["CO", "WA", "PA"]}df1 = pd.DataFrame(df1)df1['col3'] = np.nanIn[]df1Out[]:      col1 col2  col30  aliceA   CO   NaN1  aliceB   WA   NaN2  aliceC   PA   NaNdf2 = {'col1': ["aliceB", "aliceA", "aliceC",  "bobC", "bobB", "bobA",], 'col2': ['Busy','Non-Busy','Busy','Non-Busy','Non-Busy','Busy']}df2 = pd.DataFrame(df2)In[]df2Out[]:      col1      col20  aliceB      Busy1  aliceA  Non-Busy2  aliceC      Busy3    bobC  Non-Busy4    bobB  Non-Busy5    bobA      Busy***Preferred Output***Out[]:      col1 col2      col30  aliceA   CO  Non-Busy1  aliceB   WA      Busy2  aliceC   PA      Busy對于這種問題 MATLAB,我將使用我的兩個矩陣并使用嵌套的 for 循環(huán)進行迭代以查找值。在 Python 中我做了:for i in range(0, df2.shape[0]):        for j in range(0, df1.shape[0]):            if(df2.col1[i] == df1.col1[j]):                df1.col3[j] = df2.col2[i]   但是我收到了這個警告,我必須 Control + C 才能擺脫它才能繼續(xù):SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFramedf1Out[]:      col1 col2      col30  aliceA   CO  Non-Busy1  aliceB   WA      Busy2  aliceC   PA      Busy從技術(shù)上講,此代碼有效并且我的數(shù)據(jù)已填充,但我知道這可能不是解決我的問題的糟糕方法。對于這個小例子,它不會強迫我使用 Control+C,但是當我的 df1 有數(shù)千行長時它會這樣做。
查看完整描述

2 回答

?
Cats萌萌

TA貢獻1805條經(jīng)驗 獲得超9個贊

簡單的 map


df1.col3=df1.col1.map(df2.set_index('col1').col2)

df1

Out[31]: 

     col1 col2      col3

0  aliceA   CO  Non-Busy

1  aliceB   WA      Busy

2  aliceC   PA      Busy


查看完整回答
反對 回復(fù) 2021-06-08
?
慕斯709654

TA貢獻1840條經(jīng)驗 獲得超5個贊

使用merge:


df1.merge(df2.rename(columns={'col2': 'col3'}), on='col1')

     col1 col2      col3

0  aliceA   CO  Non-Busy

1  aliceB   WA      Busy

2  aliceC   PA      Busy


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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