python-3.x - 计算数值列 Pandas 中的字符串值
问题描述
我有一个数据框:
Name Hours_Worked
1 James 3
2 Sam 2.5
3 Billy T
4 Sarah A
5 Felix 5
第一个我如何计算我有非数字值的行数?
第二如何过滤以识别包含非数字值的行?
解决方案
使用to_numeric
witherrors='coerce'
将非数字转换为NaN
s 并通过以下方式创建掩码isna
:
mask = pd.to_numeric(df['Hours_Worked'], errors='coerce').isna()
#oldier pandas versions
#mask = pd.to_numeric(df['Hours_Worked'], errors='coerce').isnull()
然后按以下方式计算True
s 值sum
:
a = mask.sum()
print (a)
2
并过滤boolean indexing
:
df1 = df[mask]
print (df1)
Name Hours_Worked
3 Billy T
4 Sarah A
详情:
print (mask)
1 False
2 False
3 True
4 True
5 False
Name: Hours_Worked, dtype: bool
检查数字的另一种方法:
def check_num(x):
try:
float(x)
return False
except ValueError:
return True
mask = df['Hours_Worked'].apply(check_num)
推荐阅读
- php - PHP:如何解析 Lilypond 文件?
- c# - 电报机器人:GetUpdates 冲突
- xml - XSLT 中的粗体和斜体标记 - Apache FOP - PDF
- python - Pandas - 滚动窗口 - CustomIndex - 右边界不包含在总和窗口中
- assembly - 计算机如何将符号“5”识别为 101?
- ruby-on-rails-6 - ActiveStorage::FileNotFoundError(使用数据库后端)
- c# - 有什么方法可以避免在 iText 7 中加载 XMP 元数据?
- regex - RegEx 不匹配的信息
- python - TFBertForSequenceClassification Keras model.layers 信息详情为空?如何检查模型?
- python - python输出没有很多间距