python - 检查文本列中的数值 - python
问题描述
10 列数据框 (df) 中的 5 列 (col1 - col5) 应为空白或仅具有文本值。如果这 5 列中的任何行具有全数值,我需要触发错误。编写以下代码来识别“col1”中值是全数字的行。(我将使用相同的代码循环浏览所有 5 列):
df2 = df[df['col1'].str.isnumeric()]
我收到以下错误:ValueError: cannot mask with array contains NA / NaN values
这是因为空白值创建的是 NaN 而不是 False。当我创建一个列表而不是使用以下内容时,我看到了这一点:
lst = df['col1'].str.isnumeric()
关于如何解决这个问题的任何建议?谢谢
解决方案
试试这个来解决 NaN
import pandas as pd
df = pd.DataFrame([{'col1':1}, {'col1': 'a'}, {'col1': None}])
lst = df['col1'].astype(str).str.isnumeric()
if lst.any():
raise ValueError()
推荐阅读
- python - 有没有办法找出在另一个函数的列表理解中调用了什么函数?
- javascript - 在数组中选择一个随机短语
- python - VS Code 中使用了哪个 Python 环境,如何安装额外的包?
- python - 在 Python 中而不是在 O(1) 中追加
- postgresql - 我是否需要通过 RDS IAM 身份验证每 15 分钟重新连接一次
- css - 在代码和事件处理程序上更改 JavaFX 的样式
- github - GitHub Actions 上传和下载工件
- r - 使用 read_csv 导入大型 csv 文件时丢失数据列
- python - 如何处理 django 应用程序中的管理命令异常?
- node.js - Create-React-App (CRA) 是否与 Express 是 Node 应用程序一样是 Node 应用程序?