python - ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all():返回具有空值的列
问题描述
我正在处理信用风险分析项目的缺失数据。Dataframe 的许多列中存在缺失值。 数据框loan_data如下:
[IN]: loan_data
[OUT]:
Emp_ID Emp_Name City_Name Salary Designation Emp_years Age
1 A Delhi 30,00,000 GM 15 45
2 B Mumbai NAN Clerk 2 22
3 c NAN NAN Peon 4 18
4 D Chennai 7,000 NAN 5 20
5 E NAN NAN NAN 4 50
等等....
现在我希望显示的唯一列应该是那些我有 NAN 值并且我想要它们的总和(有多少行有 NAN 值
例如,
[IN]:
def return_loan_data_missing(x):
if (x.isnull().sum()>0):
return x.isnull().sum()
return_loan_data_missing(loan_data)
[OUT]:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(),
a.item(), a.any() or a.all().
所需的输出:
[OUT]:
City_Name 2
Salary 3
Designation 2
现在输出我得到:
[IN]:
loan_data.isnull().sum()
[OUT]:
Emp_ID 0
Emp_Name 0
City_Name 2
Salary 3
Designation 2
Emp_years 0
Age 0
请帮忙
解决方案
您可以过滤Series
更大的0
:
s = loan_data.isnull().sum()
s = s[s > 0]
或者使用callable进行过滤:
s = loan_data.isnull().sum().loc[lambda x: x > 0]
print (s)
City_Name 2
Salary 3
Designation 2
dtype: int64
如果至少有一个True
在掩码中,则应通过 test 更改您的功能Series.any
:
def return_loan_data_missing(x):
s = x.isnull().sum()
m = s > 0
if m.any():
return s[m]
else:
return 'No missing value in data.'
print (return_loan_data_missing(loan_data))
City_Name 2
Salary 3
Designation 2
dtype: int64
推荐阅读
- azure-application-insights - App Insights 记录我的 kusto 函数未显示在函数列表中
- nginx - 通过 nginx 代理请求不起作用,错误 404
- javascript - 表格提交在切换点击
- excel - Excel 加载为给定单元格值分配的上一条记录
- python - 如何使用 Python 从 json 文档中提取多个字段?
- macos - PyCharm 在 MacBook Air 上意外退出
- javascript - 如何首先给 Anime.js 元素一个打开动画,然后是一个循环动画?
- reactjs - 哨兵/浏览器是否有包含参数以仅包含特定文件?
- sonarqube - 了解 SonarQube 及其测试覆盖率
- javascript - 使用 javascript 从 url 获取后更改 html 内容