판다-채우기는 첫 번째 NULL이 아닌 값까지 나옵니다.


9

나는 같은 데이터 프레임을 가지고있다

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

NULL이 아닌 첫 번째 값까지 각 시리즈의 NULL (0) 만 채우는 방법은 무엇입니까?

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

답변:


6

사용하는 속임수의 비트 pandas.DataFrame.ffill와 함께 notna하고 where:

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

또는 사용 pandas.DataFrame.interpolate:

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

산출:

   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

이것은 사용하여 수행 할 것 wheremask.

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

여기에 고양이를 껍질을 벗기는 많은 방법 :-)


0

0 + nan이 nan이기 때문에 다음과 같이 작동합니다.

xf = df.fillna(0) + df.bfill()*0
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.