Заменить пропущенное значение из другого ряда в пандах - PullRequest
0 голосов
/ 06 мая 2018

У меня есть Pandas DataFrame с 2 столбцами.

enter image description here

Я заменил '' на NaN для более быстрой обработки с помощью fillna и т.д ..:

themes = themes.apply(lambda x: x.str.strip()).replace('', np.nan)

Как я могу заменить NaN соответствующими значениями из других строк?

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Один из способов - создать серию после удаления нулевых значений.

Затем используйте pd.Series.fillna с pd.Series.map:

df = pd.DataFrame({'code': [1, 2, 3, 1, 2, 4],
                   'name': ['A', np.nan, 'C', np.nan, 'B', 'D']})

s = df.set_index('code')['name'].dropna()
df['name'] = df['name'].fillna(df['code'].map(s))

print(df)

   code name
0     1    A
1     2    B
2     3    C
3     1    A
4     2    B
5     4    D
0 голосов
/ 06 мая 2018

Вам нужно groupby с ffill и bfill

themes.groupby('code').apply(lambda x : x.ffill().bfill())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...