Python 统计一列值出现过的次数

我有多个表格,在python中转为Dataframe,所有Dataframe其中一列为:

target
Cn12as, as568
Cn12as
2sazls
as568
as568

我想要生成一个list,第一列是出现过的值,第二列时出现的次数:

valuenumber
Cn12as2
as5683
2sazls1

目前只会写出现过的值,并将初始值设为0

                        if number not in cite_patent_list:
                            list.append( [number  , 0] )

字典


target_column = ['Cn12as, as568', 'Cn12as', '2sazls', 'as568', 'as568']
 
counts = {}
for value in target_column:
    if value not in counts:
        counts[value] = 0
    counts[value] += 1
 
result = [[key, value] for key, value in counts.items()]
 
print(result)
 

这种使用字典多好的

该回答引用Chatgpt

你可以使用pandas库实现这个功能:

import pandas as pd

# 假设你已经将多个表格转换为DataFrame
df = pd.concat([df1, df2, df3, ...])

# 计算每个值出现的次数
value_counts = df['target'].value_counts().reset_index()

# 将结果转换为列表
result = value_counts.values.tolist()

print(result)

# 输出:
# [['as568', 3],
#  ['Cn12as', 2],
#  ['2sazls', 1]]

以下答案引用自GPT-3大模型,请合理使用:

def create_frequency_table(target_column, frequency_column):
                           target_column = target_column.replace(" ","").lower()
                          frequency_column = frequency_column.replace(" ","").lower()
                          table = []
                          for number in target_column:
                          table.append([number,frequency_column.count(number)])
                          return table

如果我的回答解决了您的问题,请采纳我的回答

以下是我的解答,希望能帮到你:

from collections import Counter
import pandas as pd

df = pd.DataFrame(dict(target=['Cn12as, as568', 'Cn12as', '2sazls', 'as568', 'as568']))

count = Counter()

for row in df['target']:
    row_list = row.split(", ")
    count.update(Counter(row_list))

result = [[k, v] for k, v in count.items()]

print(result)

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^