Как объединить только строки, в которых нет значения в строках определенного столбца в pandas кадре данных - PullRequest
0 голосов
/ 07 мая 2020

У меня есть следующий фрейм данных 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')

Но если бы я сделал это, я бы получил все значения Ticker из tickerdf1, как это

    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, в основном объединить только те строки, в которых нет данных в столбце тикера, результат должен выглядеть следующим образом.

    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

Возможно ли объединить данные только в строках, где Столбец тикера пуст?

1 Ответ

0 голосов
/ 07 мая 2020

Можно сделать fillna:

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

df['Ticker'] = df['Ticker'].fillna(df['CompanyName'].map(s) )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...