2015-11-06 27 views
0

我有兩個包含不同順序數據的大熊貓數據框,我試圖根據內容將數據從一個移動到另一個。我嘗試了lambda函數,但我不認爲我正在理解這應該如何工作。這裏是我的數據的簡化版本:我想從DF1與DF2的名稱列對手欄匹配數據移動從DF2的DKP /遊戲列到DPAvPos列DF1數據如何根據與熊貓匹配的列值將數據從一個數據框移動到另一個數據框?

df1 = 
    Name Pos Opponent DPAvPos 
1 Dave QB DEN  NaN 
2 Bill QB GB  NaN 
3 Sean QB DET  NaN 

df2 = 
    Name DKP/Game 
1 DET 20.1 
2 DEN 10.4 
3 GB 15.2 

。到目前爲止,我所嘗試過的一切都沒有奏效。

+0

很多操作將得到更簡單的,如果你的指數意味着什麼。在那種情況下,你的行是否被命名爲1,2,3是否真的很重要?例如,索引是否是名稱更合乎邏輯? – alex314159

回答

0

你可以嘗試合併這兩個dataframes,然後刪除DPAvPos並重新命名DKP /遊戲爲DPAvPos:

import pandas as pd 

df1 = pd.DataFrame({ 
    "Name" : ["Dave", "Bill", "Sean"], 
    "Pos" : ['QB', 'QB', 'QB'], 
    "Opponent" : ["DEN", "GB", "DET"], 
    "DPAvPos": ["NaN", "NaN", "NaN"] 
}) 

df2 = pd.DataFrame({ 
    "Name" : ["DET", "DEN", "GB"], 
    "DKP/Game" : [ 20.1, 23, 21] 
}) 

df2.rename(columns={"Name" : "Opponent"}, inplace=True) 
df3 = pd.merge(df1, df2, on="Opponent") 
df3.drop('DPAvPos', axis=1, inplace=True) 
df3.rename(columns={"DKP/Game" : "DPAvPos"}, inplace=True) 
相關問題