Pandalar- İlk NULL olmayan değere kadar nansları doldurun


9

Benim gibi bir veri çerçevem ​​var

A    B    C
1    nan  nan
2    nan  5
3    3    nan
4    nan  nan

Her bir seri için NULL'ları (0 ile) yalnızca ilk NULL olmayan değere kadar nasıl doldurabilirim

A    B    C
1    0    0
2    0    5
3    3    nan
4    nan  nan

Yanıtlar:


6

Ve pandas.DataFrame.ffillile kullanılan bir numara :notnawhere

df.where(df.ffill().notna(), 0)

Veya şunu kullanarak pandas.DataFrame.interpolate:

df.interpolate('zero', fill_value=0, limit_direction='backward')

Çıktı:

   A    B    C
0  1  0.0  0.0
1  2  0.0  5.0
2  3  3.0  NaN
3  4  NaN  NaN

6

Bu whereveya kullanılarak yapılır mask.

df.mask(df.notna().cumsum().eq(0), 0)
# or,
df.where(df.notna().cumsum().ne(0), 0)

   A    B    C
0  1  0.0  0.0
1  2  0.0  5.0
2  3  3.0  NaN
3  4  NaN  NaN

Burada bir kedi derisi için birçok yolu :-)


0

0 + nan nan olduğu için bu çalışır:

xf = df.fillna(0) + df.bfill()*0
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.