gpt4 book ai didi

python - 如何根据另一个数据帧中某一列的 value_counts 但在其他列上具有某些条件来创建新数据帧?

转载 作者:行者123 更新时间:2023-12-01 07:35:37 24 4
gpt4 key购买 nike

我有一个在一组服务器上提出的票证的 pandas 数据框架,如下所示:

      a     b     c   Users       Problem
0 data data data User A Server Down
1 data data data User B Server Down
2 date data data User C Memory Full
3 date data data User C Swap Full
4 date data data User D Unclassified
5 date data data User E Unclassified
6 data data data User B RAM Failure

我需要创建另一个像这样的数据框,其中的数据按工单类型和仅由两个用户(A 和 B)分别提出的工单计数分组,并包含一个包含计数的列其他用户。

预期的新数据框:

+---------------+--------+--------+-------------+
| Type Of Error | User A | User B | Other Users |
+---------------+--------+--------+-------------+
| Server Down | 50 | 60 | 150 |
+---------------+--------+--------+-------------+
| Memory Full | 40 | 50 | 20 |
+---------------+--------+--------+-------------+
| Swap Full | 10 | 20 | 15 |
+---------------+--------+--------+-------------+
| Unclassified | 10 | 20 | 50 |
+---------------+--------+--------+-------------+
| | | | |
+---------------+--------+--------+-------------+

我尝试过 .value_counts() 它提供了该类型的总数。然而,我需要它基于用户。

最佳答案

如果没有用户A用户B,则通过Series.where将用户更改为其他用户然后使用 crosstab :

df['Users'] = df['Users'].where(df['Users'].isin(['User A','User B']), 'Other Users')

df = pd.crosstab(df['Problem'], df['Users'])[['User A','User B','Other Users']]
print (df)
Users User A User B Other Users
Problem
Memory Full 0 0 1
RAM Failure 0 1 0
Server Down 1 1 0
Swap Full 0 0 1
Unclassified 0 0 2

关于python - 如何根据另一个数据帧中某一列的 value_counts 但在其他列上具有某些条件来创建新数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57001971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com