计算某些字符串在 Python 中出现的次数

卢布拉姆

我正在研究影响不同国家不同部门的事件数据库,并希望创建一个表格来记录每个国家/地区的事件发生率细分。

数据库看起来像这个 atm

Incident Name  |  Country Affected  |  Sector Affected
incident_1     |  US,TW,CN          |  Engineering,Media
incident_2     |  FR,RU,CN          |  Government
etc., etc.

我的目标是建立一个看起来像这样的:

Country  |  Engineering  |  Media  |  Government
CN       |  3            |  0      |  5
etc.

现在我的方法基本上是使用 if 循环来检查 country 列是否包含特定字符串(例如“CN”),如果返回 True,则从集合中运行 Counter 以创建初始计数的字典,然后保存这。

我的问题是如何将其扩展到可以在整个数据库中运行的级别以及如何实际保存 Counter 生成的字典。

平方

pd.Series.str.get_dummiespd.DataFrame.dot

c = df['Country Affected'].str.get_dummies(sep=',')
s = df['Sector Affected'].str.get_dummies(sep=',')

c.T.dot(s)

    Engineering  Government  Media
CN            1           1      1
FR            0           1      0
RU            0           1      0
TW            1           0      1
US            1           0      1

更大的例子

np.random.seed([3,1415])

countries = ['CN', 'FR', 'RU', 'TW', 'US', 'UK', 'JP', 'AU', 'HK']
sectors = ['Engineering', 'Government', 'Media', 'Commodidty']

def pick_rnd(x):
    i = np.random.randint(1, len(x))
    j = np.random.choice(x, i, False)
    return ','.join(j)

df = pd.DataFrame({
        'Country Affected': [pick_rnd(countries) for _ in range(10)],
        'Sector Affected': [pick_rnd(sectors) for _ in range(10)]
    })

df

          Country Affected               Sector Affected
0                       CN              Government,Media
1  FR,TW,JP,US,UK,CN,RU,AU         Commodidty,Government
2                 HK,AU,JP                    Commodidty
3           RU,CN,FR,JP,UK  Media,Commodidty,Engineering
4  CN,RU,FR,JP,TW,HK,US,UK   Government,Media,Commodidty
5                    FR,CN                    Commodidty
6     FR,HK,JP,TW,US,AU,CN                    Commodidty
7  CN,HK,RU,TW,UK,US,FR,JP              Media,Commodidty
8                 JP,UK,AU             Engineering,Media
9                 RU,UK,FR                         Media

然后

c = df['Country Affected'].str.get_dummies(sep=',')
s = df['Sector Affected'].str.get_dummies(sep=',')

c.T.dot(s)

    Commodidty  Engineering  Government  Media
AU           3            1           1      1
CN           6            1           3      4
FR           6            1           2      4
HK           4            0           1      2
JP           6            2           2      4
RU           4            1           2      4
TW           4            0           2      2
UK           4            2           2      5
US           4            0           2      2

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

计算一系列字符串在列表中出现的次数 - Python

计算Python列表中出现次数的最快方法

用Python方式计算字符串列表中出现的次数的方法

python字符串中出现次数最多的最小字母表

如何计算Java字符串中出现序列的次数?

计算字符串在组列中出现的次数

使用Python在表上计算字符串出现的次数

Python:计算字符串中字母的出现次数

计算字符串Python中的出现次数

Python-Pandas-计算字符串中出现的字符数并替换字符串值

如何编写一个 Python 函数来计算一个字母在字符串中出现的次数?

计算列中出现的次数?

计算列表中出现的次数

计算列表中出现的次数

计算列中出现的次数

计算某些单词在列中出现的次数

如何计算Python中主字符串中子字符串的连续出现次数?

如何计算Python字符串中子字符串出现的次数?

如何计算字符串中出现字符串的次数(重叠)

如何计算单词在句子中出现的次数并打印出索引?(Python)

Python:计算一个单词在一个文件中出现的次数

如何在 Python 中使用 MapReduce 计算单词序列在文件中出现的次数?

如何计算组合在 Python 中的二进制表中出现的次数?

在满足某些条件的情况下(在Python中)循环遍历DataFrame并计算DataFrame中出现次数的最快方法是什么?

如何计算文本文件中字符串中出现的替换字符-python

计算字符串中字符列表出现的次数-Python(无计数或计数器)

给定字符串中出现次数最多的词

数数 字符串中出现char的次数

Excel公式返回字符串在列中出现的次数