如何使用pandas计数列中的失败次数?[副本]

1dkrff03  于 2023-06-20  发布在  其他
关注(0)|答案(3)|浏览(111)
    • 此问题已在此处有答案**:

Using value_counts with False/True. How to get false/true = 0 when there is any false or true(3个答案)
13天前关闭。
我需要使用python的pandas以csv格式将测试结果制成表格。结果可能是“通过”,也可能是“失败”。在我

import python as pd,my code is:
    df = pd.read_csv('myfile.csv')
    pass_res =df['Status'].value_counts()['passed']
    fail_res =df['Status'].value_counts()['failed']

这段代码将工作,如果有一个失败的情况。但是,当没有失败时,最后一行代码会导致错误。怎么做检查,如果有一个失败,那么我将执行我的最后一行。

zdwk9cvp

zdwk9cvp1#

您也可以添加CategoricalDType,因为value_counts返回所有观察结果:

# sample
df = pd.DataFrame({'Status': ['passed']*5 + ['other']*3})

status = pd.CategoricalDtype(['passed', 'failed'], ordered=True)
passed, failed = df['Status'].astype(status).value_counts().sort_index()

输出:

>>> passed
5

>>> failed
0

>>> df['Status'].astype(status).value_counts().sort_index()
Status
passed    5
failed    0
Name: count, dtype: int64

>>> df
   Status
0  passed
1  passed
2  passed
3  passed
4  passed
5   other
6   other
7   other
zlhcx6iw

zlhcx6iw2#

让我们使用Series.get来提取值,如果找到,否则返回0

s = df['Status'].value_counts()

passed = s.get('passed', 0)
failed = s.get('failed', 0)
gzjq41n4

gzjq41n43#

类似于@ Corralian的,但有reindex

df['Status'].value_counts(sort=False).reindex(['passed', 'failed'], fill_value=0)

一次性定义变量:

passed, failed = (df['Status'].value_counts(sort=False)
                  .reindex(['passed', 'failed'], fill_value=0)
                 )

相关问题