3 回答

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊
map
由于您只是想創(chuàng)建一列計(jì)數(shù),因此對(duì)您的玩家名稱進(jìn)行計(jì)數(shù)會(huì)更有意義:
df_2['counts'] = df_2['players.name'].map(
? ? df_1.groupby('players.name')['count'].first())
df_2?
? players.name? players.diff? counts
0? ? ? ? ?Will? ? ? ? ? ? ?0? ? ? ?2
1? ? ? ? ?John? ? ? ? ? ? ?0? ? ? ?3
2? ? ? ? ? Jim? ? ? ? ? ? ?0? ? ? ?1

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
這可以工作:
pd.merge(df_1, df_2, on=["players.name", "players.diff"]).drop_duplicates()

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊
您的樣本df_1重復(fù)了players.name相同的計(jì)數(shù),因此您需要 left-merge 和 drop_duplicates
new_df_2 = df_2.merge(df_1[['players.name','count']], on='players.name', how='left').drop_duplicates()
Out[89]:
players.name players.diff count
0 Will 0 2
2 John 0 3
5 Jim 0 1
添加回答
舉報(bào)