根据另一列中的一些多个过滤器值匹配列中的子字符串并使用 Pandas 聚合计数

Ehsan125

我正在努力根据列Name中存在的 subtring 找到 count 列的总和。子字符串应该与另一个列中存在的其他多个值共存,即错误名称如果子字符串(例如 Ehsan)匹配并且另一列(即错误名称)具有这些多个值(设备和线路错误),那么我将在计数列中进行一些计数。请记住,我只需要对名称和设备中具有子字符串 Ehsan和错误名称中的行错误的计数求和以下是我的原始数据:

在此处输入图像描述

我的输出应该是这样的:

在此处输入图像描述

请需要帮助,谢谢

马赫迪

编辑问题后:您需要选择包含的行,Ehsan然后pandas.groupby在结果上使用,dataframe如下所示:

mask_name = df['Name'].str.contains(r'.*(?:Ehsan).*')
mask_err = df['Error Name'].str.contains(r'(?:\bLine Error\b|\bDevice\b)')
df = df[mask_name & mask_err]
df.groupby(['Name', 'Error Name'])['Count'].sum().reset_index()

在编辑问题之前:您可以为列编写一个掩码Name,然后在两个掩码中选择Error Name具有regexTrue 的Count行,并对这些行求和pandas.locpandas.sum如下所示:

mask_name = df['Name'].str.contains(r'.*(?:Ehsan).*')
mask_err = df['Error Name'].str.contains(r'(?:\bLine Error\b|\bDevice\b)')
df.loc[mask_name & mask_err, 'Count'].sum()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章