[英]Pandas: concat multiple new columns to an existing data-frame based on the value of one of the columns
使用 Pandas,我手頭有一個數據框:
一個 | 乙 | |
---|---|---|
0 | 一個 | 9 |
1 | b | 9 |
2 | c | 9 |
遍歷所有行(一個接一個),基於 A 列,我(從 ZipFile)加載(從 ZipFile)字典形式的附加列(其中一些缺失 - 需要消除整行)。 結果應該類似於:
一個 | 乙 | C | D | |
---|---|---|---|---|
0 | 一個 | 9 | 阿富 | 一間酒吧 |
2 | c | 9 | c-foo | c-bar |
用於迭代的最佳方法是什么? 嘗試了幾個選項,其中包括 for-in、apply、map,但它通常在打字問題上失敗(我對此很陌生)。
任何幫助或指示將不勝感激。
假設您的數據如下所示:
import pandas as pd
data = {'A': {0: 'a', 1: 'b', 2: 'c'},
'B': {0: 9, 1: 9, 2: 9}}
df = pd.DataFrame(data)
data2 = [{'A': 'a', 'C': 'a-foo', 'D': 'a-bar'},
{'A': 'c', 'C': 'c-foo', 'D': 'c-bar'}]
df2 = pd.DataFrame(data2)
您可以將df.merge
與df.dropna
組合以合並兩個dfs
並刪除在此過程中最終以NaN
值結束的行(此處:僅索引為 1 的行):
df.merge(df2, on='A', how='left').dropna(axis=0, how='any')
A B C D
0 a 9 a-foo a-bar
2 c 9 c-foo c-bar
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.