如何查找和计算列中的字数

2024-05-13 21:08:06 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我想计算污染物的发生率,但有些情况下有不止一种污染物,所以当我使用值_counts时,它将它们计算为一。例如,“汽油,柴油=8”如果不手动操作,我如何将它们单独计算

有没有可能创造一种功能,使它们更容易分类为4种污染物?我只需要一个关于我需要做什么的线索或简单的解释

data=pd.read_csv('Data gathered.csv') data

data['CONTAMINANTS'].value_counts().plot(kind = 'barh').invert_yaxis()

Tags: csv功能readdata分类情况手动pd
1条回答
网友
1楼 · 发布于 2024-05-13 21:08:06

假设污染物在数据中总是用逗号分隔,可以使用^{}将它们放入列表中。然后可以使用^{}将它们放入不同的行中,这最终允许使用value_counts()方法

例如:

import pandas as pd

data = pd.DataFrame({'File Number': [1, 2, 3, 4],
                     'CONTAMINANTS': ['ACENAPHTENE, ANTHRACENE, BENZ-A-ANTHRACENE', 
                                      'CHLORINATED SOLVENTS', 
                                      'DIESEL, GASOLINE, ACENAPHTENE', 
                                      'GASOLINE, ACENAPHTENE']})
data
    File Number     CONTAMINANTS
0   1               ACENAPHTENE, ANTHRACENE, BENZ-A-ANTHRACENE
1   2               CHLORINATED SOLVENTS
2   3               DIESEL, GASOLINE, ACENAPHTENE
3   4               GASOLINE, ACENAPHTENE
data['CONTAMINANTS'] = data['CONTAMINANTS'].str.split(pat=', ')
data_long = data.explode('CONTAMINANTS')
data_long['CONTAMINANTS'].value_counts()
ACENAPHTENE             3
GASOLINE                2
DIESEL                  1
ANTHRACENE              1
BENZ-A-ANTHRACENE       1
CHLORINATED SOLVENTS    1
Name: CONTAMINANTS, dtype: int64

要对污染物进行分类,可以定义一个字典,将污染物映射到类型。然后,您可以使用该字典向分解的数据框添加类型列:

types = {'ACENAPHTENE': 1, 
         'GASOLINE': 2,
         'DIESEL': 2, 
         'ANTHRACENE': 1,
         'BENZ-A-ANTHRACENE': 1,
         'CHLORINATED SOLVENTS': 3}

data_long['contaminant type'] = data_long['CONTAMINANTS'].apply(lambda x: types[x])
data_long
    File Number     CONTAMINANTS            contaminant type
0   1               ACENAPHTENE             1
0   1               ANTHRACENE              1
0   1               BENZ-A-ANTHRACENE       1
1   2               CHLORINATED SOLVENTS    3
2   3               DIESEL                  2
2   3               GASOLINE                2
2   3               ACENAPHTENE             1
3   4               GASOLINE                2
3   4               ACENAPHTENE             1

相关问题 更多 >