給定兩個具有重疊但不相同行的DataFrame,您可以根據特定的條件合併它們將資訊從一個列新增到另一個列。在本例中,您想要合併兩個資料框 df1 和 df2,其中 df1 包含有關年齡的信息,df2 包含有關性別的信息。以下是如何在保留第一個資料幀的資訊的同時執行此操作。
要合併資料幀並保留第一個資料幀的信息,請使用map 函數以及set_index 創建的Series:
<code class="python">df1['Sex'] = df1['Name'].map(df2.set_index('Name')['Sex'])</code>
例如:
<code class="python">df1 = pd.DataFrame({'Name': ['Tom', 'Sara', 'Eva', 'Jack', 'Laura'], 'Age': [34, 18, 44, 27, 30], 'Sex': None}) df2 = pd.DataFrame({'Name': ['Tom', 'Paul', 'Eva', 'Jack', 'Michelle'], 'Sex': ['M', 'M', 'F', 'M', 'F']}) df1['Sex'] = df1['Name'].map(df2.set_index('Name')['Sex']) print(df1)</code>
輸出:
Name Age Sex 0 Tom 34 M 1 Sara 18 NaN 2 Eva 44 F 3 Jack 27 M 4 Laura 30 NaN
實現相同結果的另一種方法是合併使用左聯接的資料幀:
<code class="python">df = df1.merge(df2[['Name', 'Sex']], on='Name', how='left')</code>
範例:
<code class="python">df = df1.merge(df2[['Name', 'Sex']], on='Name', how='left') print(df)</code>
輸出:
Name Age Sex 0 Tom 34 M 1 Sara 18 NaN 2 Eva 44 F 3 Jack 27 M 4 Laura 30 NaN
如果您需要合併多列,請使用相同的左連接方法並指定附加連接列:
<code class="python">df = df1.merge(df2[['Name', 'Sex', 'Year', 'Code']], on=['Year', 'Code'], how='left')</code>
如果由於重複連接而遇到錯誤列,則透過刪除重複項或使用字典進行映射來處理它。
以上是如何基於列合併資料幀,保留第一個資料幀的資訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!