Замена строк исходного DataFrame измененными строками .copy (): объединение результатов .copy () с исходным DataFrame - PullRequest
0 голосов
/ 11 июля 2019

Я взял раздел большого DataFrame (с именем 'df') с помощью .copy () (с именем 'df_copy') и применил некоторые функции для создания нового столбца, 'Category'.

Тем не менее, я также дал 'df' столбец с именем 'Category' и назначил некоторые другие значения этому столбцу. Все остальные значения / столбцы в 'df_copy' такие же, как их соответствующие значения / столбцы в 'df': единственное отличие - это столбец 'Category'.

Для понимания,

Исходные кадры данных:

  • df - 100 строк с 3 столбцами.
  • df_copy - это 5 строк из df с одинаковыми столбцами.

После обработки:

  • df - 100 строк с 4 столбцами (новый столбец - «Категория»), 5 из этих строк имеют «NaN» для столбца «Категория»
  • df_copy - это 5 строк с 4 столбцами, новый столбец - это «Категория», значения которой не указаны в df.

По сути, я хочу заменить строки, взятые из df (те, которые были в исходном кадре данных df_copy), на текущие строки постобработки из df_copy.

Я пробовал разные формы слияний:

  • Слияние слева, не указывайте 'on': приводит к появлению 'NA' для столбца Category строк, которые были первоначально скопированы в df_copy
  • правильное слияние, не указывайте 'on': то же, что df_copy
  • оставлено слияние в одном столбце, который не изменился между df и df_copy (например, «Number»): каждый столбец дублируется: «Number_x», «Number_y», «Category_x», «Category_y».

1 Ответ

1 голос
/ 11 июля 2019

Вы пробовали использовать df.where ()?

df = df.where(df['Category'].isna(), df_copy)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...