首页 > 解决方案 > 在熊猫数据框中,需要拆分列并将它们添加回其他行

问题描述

STATUS在数据框中有一列,我正在使用value_count函数获取计数

df.STATUS.value_counts(sort=True)

输出:

Verified               171
ErrTab;                  9
WarKeyWord;              4
ErrTab; and WarKeyWord; 10

所以现在我想打破最后一行并将这些值添加到以前的计数中。

预期的:

Verified        171
ErrTab;          19
WarKeyWord;      14

最简单的方法是什么?有任何想法吗?

标签: pythonpandasnumpy

解决方案


为了获得不太长的源 DataFrame,我将其定义为:

                     STATUS  Amount
0                  Verified       1
1                  Verified       2
2                  Verified       3
3                   ErrTab;       1
4                   ErrTab;       2
5                   ErrTab;       3
6                   ErrTab;       4
7                   ErrTab;       5
8                   ErrTab;       6
9                   ErrTab;       7
10                  ErrTab;       8
11                  ErrTab;       9
12              WarKeyWord;       1
13              WarKeyWord;       2
14              WarKeyWord;       3
15              WarKeyWord;       4
16  ErrTab; and WarKeyWord;       1
17  ErrTab; and WarKeyWord;       2
18  ErrTab; and WarKeyWord;       3

(每个STATUS有 3、9、4 和 3 个项目)。

然后,要获得预期的结果,请运行:

df.STATUS.str.split(' and ').explode().value_counts(sort=True)

结果是:

ErrTab;        12
WarKeyWord;     7
Verified        3
Name: STATUS, dtype: int64

由于每个STATUS的出现次数不同,结果排序不同(我的源数据的副作用)。


推荐阅读