Как заменить отсутствующие записи столбца в одном фрейме данных записями из другого фрейма данных в python? - PullRequest
1 голос
/ 30 мая 2020

Есть два фрейма данных df1 и df2. Два столбца в df1 - это A и B. В B. отсутствуют значения для отсутствующих значений в B в df1, есть записи в df2, а его столбцы - это A и B (записи в df2 - это те, которые отсутствуют в B только df1). Я хочу заменить отсутствующие значения B в df1 соответствующей записью B из df2.

EDIT:

df1 = pd.DataFrame({'A': [1,2,3,4,5,6,7,8], 'b': [101,123,np.nan,678,np.nan,672,np.nan,786], 'C': ['ABC', 'DER', 'ERC','DFE','HJI','JKL','SDH',np.Nan]})

df2 = pd.DataFrame({'A': [3,7], 'B': [563,785]})

Desired O / P:

op = pd.DataFrame({'A': [1,2,3,4,5,6,7,8], 'b': [101,123,563,678,np.nan,672,785,786], 'C': ['ABC', 'DER', 'ERC','DFE','HJI','JKL','SDH',np.Nan]})

1 Ответ

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

Используйте, pd.merge, чтобы слева объединить фреймы данных df1 и df2 в столбце A, затем с помощью Series.fillna заполните отсутствующие значения в столбце b из значений в столбце B:

df = pd.merge(df1, df2, on='A', how='left')
df['b'] = df['b'].fillna(df.pop('B'))

Результат:

# print(df)
   A      b    C
0  1  101.0  ABC
1  2  123.0  DER
2  3  563.0  ERC
3  4  678.0  DFE
4  5    NaN  HJI
5  6  672.0  JKL
6  7  785.0  SDH
7  8  786.0  NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...