簡體   English   中英

Pandas:根據其中一列的值將多個新列連接到現有數據幀

[英]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.mergedf.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM