Заполните пропущенные данные pandas не пропущенным значением с тем же идентификатором, но избегая определенных значений - PullRequest
1 голос
/ 29 апреля 2020

В частности, я получил 3 столбца, в которых отсутствуют данные из левого соединения по 2 ключам.

Я хочу заполнить отсутствующие данные данными из того же столбца, но из строки с тем же идентификатором (это один из двух ключей) и только для столбца «Размер».

Дело в том, что я не могу использовать df['Size'] = df.groupby('Id')['Size'].ffill(), так как хочу избежать использования размеров, содержащих «LAB» строка (без учета регистра), поэтому я могу использовать только те записи, которые Size = ['XL', 'L', 'M', 'MS', 'S', 'XS'].

Не беспокойтесь о том, какой «Размер» является правильным. В кадре данных будет только не более 2 опций (это всегда будет только один действительный размер списка, который я упоминал ранее, а иногда и строка, которая в некоторых случаях содержит 'LAB')

Представьте себе фактический датафрейм выглядит примерно так:

Id    |    Place   | ... |   Size   |   Building  |   Wing   |
-----------------------------------------------------------
...      ...         ...     ...         ...          ...
64587    America     ...     LaB.PCD     A            North
64587    America     ...     XL          C            East
64587    Africa      ...     nan         nan          nan
64587    Africa      ...     nan         nan          nan
...        ...       ...     ...         ...          ...

Таким образом, желаемый результат должен быть:

Id    |  Place   | ... |   Size   |   Building  |   Wing   |
-----------------------------------------------------------
...      ...       ...     ...         ...            ...
64587    America   ...     LaB.PCD     A              North
64587    America   ...     XL          C              East
64587    Africa    ...     XL          nan            nan
64587    Africa    ...     XL          nan            nan
...      ...       ...     ...         ...            ...
...