sourcecode

각 행의 결측/NaN 수 계산

codebag 2023. 10. 30. 20:58
반응형

각 행의 결측/NaN 수 계산

행 수가 많은 데이터 세트를 가지고 있습니다.일부 값은 NaN입니다.

In [91]: df
Out[91]:
 1    3      1      1      1
 1    3      1      1      1
 2    3      1      1      1
 1    1    NaN    NaN    NaN
 1    3      1      1      1
 1    1      1      1      1

그리고 각 행에 있는 NaN 값의 수를 세고 싶습니다. 다음과 같습니다.

In [91]: list = <somecode with df>
In [92]: list
    Out[91]:
     [0,
      0,
      0,
      3,
      0,
      0]

가장 빠르고 좋은 방법은 무엇입니까?

당신은 먼저 원소가 다음과 같은지 찾을 수 있습니다.NaN말든 말든isnull()그 다음엔 행을 따라갑니다.sum(axis=1)

In [195]: df.isnull().sum(axis=1)
Out[195]:
0    0
1    0
2    0
3    3
4    0
5    0
dtype: int64

그리고 출력을 목록으로 원한다면,

In [196]: df.isnull().sum(axis=1).tolist()
Out[196]: [0, 0, 0, 3, 0, 0]

아니면 사용count맘에 들다

In [130]: df.shape[1] - df.count(axis=1)
Out[130]:
0    0
1    0
2    0
3    3
4    0
5    0
dtype: int64

특정 행에서 NaN을 계산하려면

cols = ['col1', 'col2']
df['number_of_NaNs'] = df[cols].isna().sum(1)

또는 위치별로 열을 색인화합니다. 예를 들어 처음 4개의 열에 NaN을 카운트합니다.

df['number_of_NaNs'] = df.iloc[:, :4].isna().sum(1)

언급URL : https://stackoverflow.com/questions/30059260/counting-the-number-of-missing-nan-in-each-row

반응형