Python 从df.isnull().sum()中删除非零字段
我正在使用Python 从df.isnull().sum()中删除非零字段,python,pandas,dataframe,Python,Pandas,Dataframe,我正在使用df.isnull().sum()获取数据帧中NaN值的计数 是否有办法只显示非零的值计数(即,如果列有0个NaN,则不显示在值计数中) 这就是结果,我想删除0值 Job ID 0 Agency 0 Posting Type 0 # Of Positions 0 Business Ti
df.isnull().sum()
获取数据帧中NaN
值的计数
是否有办法只显示非零的值计数(即,如果列有0个NaN,则不显示在值计数中)
这就是结果,我想删除0值
Job ID 0
Agency 0
Posting Type 0
# Of Positions 0
Business Title 0
Civil Service Title 0
Title Code No 0
Level 0
Job Category 2
Full-Time/Part-Time indicator 261
Salary Range From 0
Salary Range To 0
Salary Frequency 0
Work Location 0
Division/Work Unit 0
Job Description 0
Minimum Qual Requirements 14
Preferred Skills 377
Additional Information 1177
To Apply 1
Hours/Shift 2123
Work Location 1 1719
Recruitment Contact 3116
Residency Requirement 0
Posting Date 0
Post Until 2214
Posting Updated 0
Process Date 0
qualifications 3092
requir 14
requir1 14
您可以将显示为
nullseries
的序列存储起来,然后对其进行筛选。例如
nullseries = df.isnull().sum()
print(nullseries[nullseries > 0])
如果需要删除所有行,请重新指定
nullseries = nullseries[nullseries > 0]
下面是一个简短的工作示例:
In [46]: df = pd.DataFrame([[np.NaN, 1], [2, 3], [np.NaN, 4]], columns=['x', 'y'])
In [47]: nullseries = df.isnull().sum()
In [48]: nullseries[nullseries > 0]
Out[48]:
x 2
dtype: int64
可能不是最有效的解决方案,但也有效:
df = pd.DataFrame({'a': [1,2,np.nan], 'b': [3,4,5]}
df.isnull().sum().to_frame(name='counts').query('counts > 0')
屈服
counts
a 1