답변:
다음과 같이 행에 카운트를 적용 할 수 있습니다.
test_df.apply(lambda x: x.count(), axis=1)
test_df :
A B C
0: 1 1 3
1: 2 nan nan
2: nan nan nan
산출:
0: 3
1: 1
2: 0
결과를 다음과 같은 열로 추가 할 수 있습니다.
test_df['full_count'] = test_df.apply(lambda x: x.count(), axis=1)
결과:
A B C full_count
0: 1 1 3 3
1: 2 nan nan 1
2: nan nan nan 0
팬더를 사용하는 경우 포함하는 루프에서 수행하는 작업을 피하려고 apply
, map
, applymap
느린 등!
각 열에서 결 측값을 계산하려면 다음을 시도하십시오.
df.isnull().sum()
또는 df.isnull().sum(axis=0)
반면에, 다음과 같이 각 행 (질문)을 계산할 수 있습니다.
df.isnull().sum(axis=1)
Jan van der Vegt의 솔루션보다 약 10 배 빠릅니다 (BTW는 누락 된 값이 아닌 유효한 값을 계산합니다).
In [18]: %timeit -n 1000 df.apply(lambda x: x.count(), axis=1)
1000 loops, best of 3: 3.31 ms per loop
In [19]: %timeit -n 1000 df.isnull().sum(axis=1)
1000 loops, best of 3: 329 µs per loop
열을 따라 null 값
df.isnull().sum(axis=0)
열을 따라 빈 값,
c = (df == '').sum(axis=0)
행을 따라 null 값
df.isnull().sum(axis=1)
행을 따라 빈 값,
c = (df == '').sum(axis=1)
>>> df = pd.DataFrame([[1, 2, np.nan],
... [np.nan, 3, 4],
... [1, 2, 3]])
>>> df
0 1 2
0 1 2 NaN
1 NaN 3 4
2 1 2 3
>>> df.count(axis=1)
0 2
1 2
2 3
dtype: int64