簡體   English   中英

如何僅合並 pandas dataframe 中某列的行中沒有值的行

[英]How to merge only on rows where there is no value in the rows of a certain column in pandas dataframe

我有以下 dataframe df1,

    CompanyName      Country Ticker ....................
0   Apple Inc.       US      AAPL
1   Microsoft        US
2   Sony             US
3   DBS              SG      D05
4   Razer            HK      0700
5   General Electric US      GE

然后我有一個所有公司名稱的列表,只有他們的股票代碼tickerdf,

    CompanyName      Ticker 
0   Apple Inc.       AAPL
1   Microsoft        MSFT
2   Sony             SNE     
3   DBS              D05.SI
4   Razer            0700.HK
5   General Electric GE

如果我想合並,我會做的公司名稱,

mergeddf = pd.merge(df1,tickerdf,on=['CompanyName'], how='left')

但是,如果我這樣做了,我最終會得到來自 tickerdf1 的所有 Ticker 值,就像這樣

    CompanyName      Country Ticker ....................
0   Apple Inc.       US      AAPL
1   Microsoft        US      MSFT
2   Sony             US      SNE
3   DBS              SG      D05.SI
4   Razer            HK      0700.HK
5   General Electric US      GE

但是,我希望它保留 df1 中的值,基本上只在代碼列上沒有數據的行上合並,output 應該是這樣的。

    CompanyName      Country Ticker ....................
0   Apple Inc.       US      AAPL
1   Microsoft        US      MSFT
2   Sony             US      SNE
3   DBS              SG      D05
4   Razer            HK      0700
5   General Electric US      GE

是否可以僅合並 Ticker 列為空的行上的數據?

你可以做fillna

# Ticker by company
s = df2.set_index('CompanyName')['Ticker']

df['Ticker'] = df['Ticker'].fillna(df['CompanyName'].map(s) )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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