我想计算数据集列中存在的列表中项目的出现次数。我在数据集中有我的标签列。我的数据集包含以下格式的数据
tags
-----------
['symfony' 'assestic]
['java' 'containers' 'kubernetes']
['python' 'pelican']
['python' 'api' 'oath' 'python-requests']
['google-api' 'google-cloud-storage']
该列表似乎也是字符串格式。如果不连接列表中的所有项目,我无法将字符串转换为列表。
#Checking the type of first 5 rows tags
for i,l in enumerate(df.tags):
print('list',i,'is class', type(l) )
if i ==4:
break
输出将是
list 0 is class <class 'str'>
list 1 is class <class 'str'>
list 2 is class <class 'str'>
list 3 is class <class 'str'>
list 4 is class <class 'str'>
我尝试了两种方法 方法1:
def clean_tags_list(list_):
list_ = list_.replace("\"['" , '[')
list_ = list_.replace("']\"", ']')
list_ = list_.replace("'","")
return list_
df['tags'] = df['tags'].apply(clean_tags_list)
输出将是
tags
----------------------------------
[symfony assestic]
[java containers kubernetes]
[python pelican]
[pyton api oath python-requests]
[google-api google-cloud-storage]
但价值计数不适用于上述系列。值计数将给出以下输出
[symfony assestic] 1
[java containers kubernetes] 1
[python pelican] 1
[pyton api oath python-requests] 1
[google-api google-cloud-storage] 1
方法2: 我尝试使用replace、strip、asl.literal_eval()。
问题 如何实现以下格式的输出?
python 2
symfony 1
assestic 1