판다 데이터 프레임에 하나 이상의 NaN 값이 있는 행 표시
일부 행에 결측값이 포함된 데이터 프레임이 있습니다.
In [31]: df.head()
Out[31]:
alpha1 alpha2 gamma1 gamma2 chi2min
filename
M66_MI_NSRh35d32kpoints.dat 0.8016 0.9283 1.000000 0.074804 3.985599e+01
F71_sMI_DMRI51d.dat 0.0000 0.0000 NaN 0.000000 1.000000e+25
F62_sMI_St22d7.dat 1.7210 3.8330 0.237480 0.150000 1.091832e+01
F41_Car_HOC498d.dat 1.1670 2.8090 0.364190 0.300000 7.966335e+00
F78_MI_547d.dat 1.8970 5.4590 0.095319 0.100000 2.593468e+01
저는 그 행들을 화면에 표시하고 싶습니다.내가 노력하면df.isnull()
긴 데이터 프레임을 제공합니다.True
그리고.False
이 행을 선택하여 화면에 인쇄할 수 있는 방법이 있습니까?
매개 변수와 함께 사용할 수 있습니다.axis=1
확인을 위해 적어도 하나.True
다음과 나란히:
df1 = df[df.isna().any(axis=1)]
d = {'filename': ['M66_MI_NSRh35d32kpoints.dat', 'F71_sMI_DMRI51d.dat', 'F62_sMI_St22d7.dat', 'F41_Car_HOC498d.dat', 'F78_MI_547d.dat'], 'alpha1': [0.8016, 0.0, 1.721, 1.167, 1.897], 'alpha2': [0.9283, 0.0, 3.833, 2.809, 5.459], 'gamma1': [1.0, np.nan, 0.23748000000000002, 0.36419, 0.095319], 'gamma2': [0.074804, 0.0, 0.15, 0.3, np.nan], 'chi2min': [39.855990000000006, 1e+25, 10.91832, 7.966335000000001, 25.93468]}
df = pd.DataFrame(d).set_index('filename')
print (df)
alpha1 alpha2 gamma1 gamma2 chi2min
filename
M66_MI_NSRh35d32kpoints.dat 0.8016 0.9283 1.000000 0.074804 3.985599e+01
F71_sMI_DMRI51d.dat 0.0000 0.0000 NaN 0.000000 1.000000e+25
F62_sMI_St22d7.dat 1.7210 3.8330 0.237480 0.150000 1.091832e+01
F41_Car_HOC498d.dat 1.1670 2.8090 0.364190 0.300000 7.966335e+00
F78_MI_547d.dat 1.8970 5.4590 0.095319 NaN 2.593468e+01
설명:
print (df.isna())
alpha1 alpha2 gamma1 gamma2 chi2min
filename
M66_MI_NSRh35d32kpoints.dat False False False False False
F71_sMI_DMRI51d.dat False False True False False
F62_sMI_St22d7.dat False False False False False
F41_Car_HOC498d.dat False False False False False
F78_MI_547d.dat False False False True False
print (df.isna().any(axis=1))
filename
M66_MI_NSRh35d32kpoints.dat False
F71_sMI_DMRI51d.dat True
F62_sMI_St22d7.dat False
F41_Car_HOC498d.dat False
F78_MI_547d.dat True
dtype: bool
df1 = df[df.isna().any(axis=1)]
print (df1)
alpha1 alpha2 gamma1 gamma2 chi2min
filename
F71_sMI_DMRI51d.dat 0.000 0.000 NaN 0.0 1.000000e+25
F78_MI_547d.dat 1.897 5.459 0.095319 NaN 2.593468e+01
사용하다df[df.isnull().any(axis=1)]
python 3.6 이상인 경우.
감마1과 감마2가 df.isnull().any()가 True 값을 제공하는 두 개의 열이라고 가정하면 다음 코드를 사용하여 행을 인쇄할 수 있습니다.
bool1 = pd.isnull(df['gamma1'])
bool2 = pd.isnull(df['gamma2'])
df[bool1]
df[bool2]
df.isna().any()
nan 값의 열 상태를 반환합니다.따라서 nan 값을 관찰하고 분석하는 더 나은 방법은 다음과 같습니다.
df.loc[:, df.isna().any()]
이것도 시도해볼 수 있습니다, 거의 비슷한 이전 답들입니다.
d = {'filename': ['M66_MI_NSRh35d32kpoints.dat', 'F71_sMI_DMRI51d.dat', 'F62_sMI_St22d7.dat', 'F41_Car_HOC498d.dat', 'F78_MI_547d.dat'], 'alpha1': [0.8016, 0.0, 1.721, 1.167, 1.897], 'alpha2': [0.9283, 0.0, 3.833, 2.809, 5.459], 'gamma1': [1.0, np.nan, 0.23748000000000002, 0.36419, 0.095319], 'gamma2': [0.074804, 0.0, 0.15, 0.3, np.nan], 'chi2min': [39.855990000000006, 1e+25, 10.91832, 7.966335000000001, 25.93468]}
df = pd.DataFrame(d).set_index('filename')
각 열의 null 값 수입니다.
df.isnull().sum()
df.isnull().any(axis=1)
언급URL : https://stackoverflow.com/questions/43424199/display-rows-with-one-or-more-nan-values-in-pandas-dataframe
'programing' 카테고리의 다른 글
Environment.getExternalStorageDirectory()가 API 수준 29 java에서 더 이상 사용되지 않습니다. (0) | 2023.08.13 |
---|---|
부트스트랩 버튼을 클릭하면 파란색 윤곽선이 표시됨 (0) | 2023.08.13 |
UI 텍스트 보기의 줄 수 제한 (0) | 2023.08.13 |
Swagger API 응답에서 개체 목록 설정 (0) | 2023.08.13 |
은행 또는 금융 회사가 "핵심" 시스템에 대해 다른 RDBMS보다 Oracle을 선호하는 이유는 무엇입니까? (0) | 2023.08.13 |