pandas 计数单列中的字符串[重复]

np8igboo  于 2023-05-12  发布在  其他
关注(0)|答案(1)|浏览(179)

此问题已在此处有答案

Splitting and counting the frequency of the elements of a Pandas column(3个答案)
Pandas: Split arrays and count [duplicate](1个答案)
2天前关闭。
我有一个事务ID的 Dataframe ,其中一列由不同的标记组成。每一行可以有一个 * 或 * 多个标签。我想计算 each 标签的示例数。在这种情况下,使用df.col.value_counts()将不起作用,因为它不会计算单个事件。
| 交易|标签|
| --------------|--------------|
| 01|标签1|
| 02|标签1、标签3|
| 03|标签2|
| 04|标签2,标签3|
使用.value_counts()将导致:

  • 标签11
  • 标签1、标签31
  • 标签21
  • 标签2、标签31

我要找的是:

  • 标签12
  • 标签22
  • 标签32

有什么建议吗?

knsnq2tg

knsnq2tg1#

value_counts之前的splitexplode

df['Tag'].str.split(', *').explode().value_counts()

输出:

Tag
tag1    2
tag3    2
tag2    2
Name: count, dtype: int64

或者不使用pandas,使用collections.Counter

from collections import Counter

out = Counter(tag for s in df['Tag'] for tag in s.split(', '))

输出:Counter({'tag1': 2, 'tag3': 2, 'tag2': 2})

相关问题