Python pandas统计Excel表中人名次数
HDUZN

比如用钉钉的智能填表做投票优秀员工,得到了以下这样一份表格数据:

每个人投了3个优秀员工,当然,这里是举例,3个可能还好拆,如果是10、个20个呢?然后有几百人投票的话,这个统计次数就有点麻烦。

对于这样在Excel表格中,一个单元格中有多项内容的统计,在Excel中当然也可以处理,这里会Python的话,介绍用pandas这个库,就超级简单了。

思路:

  • 1.从Excel中读取 “优秀员工”这一列数据;
  • 2.把数据处理成一个List,类似这样:[‘张三’, ‘李四’, ‘李四’, ‘张三’];
  • 3.统计List中每一项的次数,并把结果写入Excel统计结果表中。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import pandas as pd
import numpy as np
import os

def ceping_count(ex_file, output_file):
# 1.从Excel读取
usecols = ['优秀员工']
sheet_name = 'Sheet1' # sheet名
df = pd.read_excel(ex_file, sheet_name=sheet_name, usecols=usecols)
data_list = np.array(df).tolist() # 把数据转为List

# 2.处理数据
result_list = [] # 一列数据
for data in data_list:
str = data[0]
new_list = str.split(',')
result_list = result_list + new_list

# 3.写入Excel
if os.path.exists(output_file):
os.remove(output_file)
result = pd.value_counts(result_list) # 统计列表中每项的次数
# print(type(result)) # <class 'pandas.core.series.Series'>
result.to_excel(output_file)

ceping_count('民主测评.xlsx', '测评-统计.xlsx')

结果如下图(默认排序都降序排好了,改一下标题就行了):

  • 本文标题:Python pandas统计Excel表中人名次数
  • 本文作者:HDUZN
  • 创建时间:2023-01-07 14:34:43
  • 本文链接:http://hduzn.cn/2023/01/07/Python-pandas统计Excel表中人名次数/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论