Заполните NaNs в столбце столбцом max - PullRequest
0 голосов
/ 01 февраля 2019

Мои данные:

df = pd.DataFrame({'a':[2, np.nan, 2, np.nan],
                   'b':[np.nan, np.nan, 3, 3]})

a      b
2      np.nan
np.nan np.nan
2       3
np.nan  3

ищу, чтобы получить

a      b
2      3
2      3
2      3
2      3

Пробная прямая заливка

df = df.ffill()
a      b
2      np.nan
2      np.nan
2      3
2      3

Пробная прямая заливка, но из-за того, что у меня был Nan в первом рядув b я получил Нэн еще в b.Как можно вместо этого заполнить уникальными значениями каждой строки?(все столбцы имеют повторяющиеся значения или np.nan)

1 Ответ

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

Цепочка bfill вызов:

df.ffill().bfill()

     a    b
0  2.0  3.0
1  2.0  3.0
2  2.0  3.0
3  2.0  3.0

Чтобы разрешить пандам опускаться до int с, если возможно, используйте

df.ffill().bfill(downcast='infer')

   a  b
0  2  3
1  2  3
2  2  3
3  2  3

Другой вариантравно fillna с max.

df.fillna(df.max(), downcast='infer')

   a  b
0  2  3
1  2  3
2  2  3
3  2  3

max игнорирует NaN, поэтому является хорошей альтернативой.

...