заменить NaNs в объединенном фрейме данных на основе условия - (Python, Pandas) - PullRequest
0 голосов
/ 23 октября 2018

У меня есть 2 кадра данных.1010 *

ID  df1_Members  df2_Members
100  Eric         Eric
200  Chris        Chris
300  Jordan        Jordan
400  Samantha      NaN
600  Audrey        NaN

Я хочу заменить NaN, соответствующий ID 400, на «Нет данных», а ID, соответствующий 600, - «ID не существует», поскольку ID 600 отсутствует в df2

Япытаюсь сделать это так, но это не работает

if (df_merge['df2_Members']==np.nan) & (df1['ID'].isin(df2['ID'])):
    df_merge['df2_Members'].fillna('No Data',inplace=True)
#ID in df1 doesn't exist in df2
elif (df_merge['df2_Members']==np.nan) &(~df1['ID'].isin(df2['ID'])):
    df_merge['df2_Members']="ID doesn't exist in df2"

`

1 Ответ

0 голосов
/ 23 октября 2018

Попробуйте это:

df_merge.loc[(df_merge['df2_Members'].isna()) & (df_merge['ID'].isin(df2['ID'])), 'df2_Members'] = 'No Data'
df_merge.loc[(df_merge['df2_Members'].isna()) & (~df_merge['ID'].isin(df2['ID'])), 'df2_Members'] = "ID doesn't exist in df2"

df_merge

Должен вернуть то, что вы хотите

    ID  df1_Members df2_Members
0   100 Eric        Eric
1   200 Chris       Chris
2   300 Jordan      Jordan
3   400 Samantha    No Data
4   500 Audrey      No Data
5   600 Johnny      ID doesn't exist in df2

Я добавил ID 600 как другое имя, отсутствующее в df2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...