python用Counter进行计数,统计序列中元素的频次+dataframe数据框进行转置处理并设置列名

2023-12-13 05:25:08

? ? ?`Counter` 是 Python 中的一个内置库,属于 `collections` 模块。

? ? ? 它可以用于计算一个序列(如列表、元组等)中各个元素的计数。

? ? ? Counter 对象可以方便地获取序列中出现次数最多的元素以及其出现次数。

? ? ? 简单来说,Counter 的作用就是统计序列中元素的频次。

目录

总代码:

1.导入数据

2.dict(Counter(b))

?3.pd.DataFrame([score_count])

4.?pd.DataFrame(score.values.T,index=score.columns,columns=score.index)

5.count.reset_index(inplace=True)?

6.count.columns = ["元素", "频数"]

下面利用一个例子进行介绍:

总代码:

b=[1,23,5,69,69,36,69,2,36,2,1,2,3,1,2,3,5,2,9,5,9,2,3,36,23,23,23,5,6,6,6,6]
#b是列表
#b=(1,23,5,69,69,36,69,2,36,2,1,2,3,1,2,3,5,2,9,5,9,2,3,36,23,23,23,5,6,6,6,6)
#b是元组
from collections import Counter
score_count=dict(Counter(b))

import pandas as pd
score=pd.DataFrame([score_count])

count=pd.DataFrame(score.values.T,index=score.columns,columns=score.index)
count.reset_index(inplace=True)
count.columns = ["元素", "频数"]

1.导入数据

b=[1,23,5,69,69,36,69,2,36,2,1,2,3,1,2,3,5,2,9,5,9,2,3,36,23,23,23,5,6,6,6,6]
#b是列表
b=(1,23,5,69,69,36,69,2,36,2,1,2,3,1,2,3,5,2,9,5,9,2,3,36,23,23,23,5,6,6,6,6)
#b是元组

上面两句代码均是定义的此次讲解需要的数据,第一个语句将b定义为了列表,第二个语句将b定义为了元组类型。随机选一个即可。

因为Counter可以用于计算列表、元组等各个元素的计数。

2.dict(Counter(b))

score_count=dict(Counter(b))

score_count#输出查看

使用Counter方法统计列表b中元素的出现次数,并将结果存储在字典score_count中

结果:

?3.pd.DataFrame([score_count])

score=pd.DataFrame([score_count])

score#输出查看

将score_count字典转换为DataFrame格式

结果:

4.?pd.DataFrame(score.values.T,index=score.columns,columns=score.index)

count=pd.DataFrame(score.values.T,index=score.columns,columns=score.index)
count#输出查看

计算一个使用`score.values`的转置(transpose)创建一个新的DataFrame。转置操作会将行和列互换。

`score.values`返回一个NumPy数组,表示`score` DataFrame的值。

`index=score.columns`:为新创建的DataFrame设置索引,使用`score` 的列名作为索引。

`columns=score.index`:为新创建的DataFrame设置列名,使用`score` DataFrame的行名作为列名。

总之,这段代码将`score` 进行转置,并使用原始DataFrame的行名作为新DataFrame的列名,原始DataFrame的列名作为新DataFrame的索引。

结果:

5.count.reset_index(inplace=True)?

count.reset_index(inplace=True)

count#输出查看

使用`reset_index()`函数重置索引。这将把原来的索引移除,并基于默认的整数索引重新创建一个新的索引。

通过设置`inplace=True`,这个操作会在原地(内部)执行,不会创建一个新的DataFrame。而是直接修改原有的`count` DataFrame。

这句话通常用于在对数据进行分组和计数操作后,重新设置索引以便后续处理。

结果:

6.count.columns = ["元素", "频数"]

count.columns = ["元素", "频数"]
count#输出查看

设置列名

?结果:

文章来源:https://blog.csdn.net/2301_81199775/article/details/134895822
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。