Перезаписать некоторые строки в фрейме данных pandas на строки из другого фрейма данных на основе индекса - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть файл данных pandas, df1.

Я хочу перезаписать его значения значениями в df2, где совпадают индекс и имя столбца.

Я нашел несколько ответов наэтот сайт, но ничего, что вполне делает то, что я хочу.

df1

   A   B   C
0  33  44  54
1  11  32   54
2  43  55  12
3  43  23  34

df2
   A
0  5555

output

   A   B   C
0  5555  44  54
1  11  32   54
2  43  55  12
3  43  23  34

1 Ответ

0 голосов
/ 24 февраля 2019

Вы можете использовать combine_first с преобразованием в целое число, если необходимо:

df = df2.combine_first(df1).astype(int)
print (df)
      A   B   C
0  5555  44  54
1    11  32  54
2    43  55  12
3    43  23  34

При необходимости проверьте индекс пересечения и столбцы между DataFrame s:

df2= pd.DataFrame({'A':[5555, 2222],
                   'D':[3333, 4444]},index=[0, 10])

idx = df2.index.intersection(df1.index)
cols = df2.columns.intersection(df1.columns)

df = df2.loc[idx, cols].combine_first(df1).astype(int)
print (df)
      A   B   C
0  5555  44  54
1    11  32  54
2    43  55  12
3    43  23  34
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...