近期,我一个做外贸方面的一个朋友问我会不会VBA,他要从一堆类似PUMA womem's shoes这样的词条里,统计每个单词出现的次数,当时我就想,这个python可以解决,但是我不会,哈哈哈。昨晚研究了几个小时,终于被我弄出来了。我先简单建个实验表
然后写代码吧,引入几个库,实际好像就用了openpyxl
import os
#from openpyxl import load_workbook
from openpyxl import *
import pandas as pd
加载表格,引用指定sheet页(例如:结果),参考的代码get_sheet_name等好像已经过时了,搜了新的,代码简化了一些,将sheet页里的单元格ceil一一提取,并用split分割放进一个列表里(look_up_table_row_start是sheet里起始行,下面的32只要比你实际数据行数多就可以,if函数筛选了none)
使用set对列表去重,再将里面的值i,在初始列表里的次数name_.count(i)写入指定单元格,使用sheet.ceil(row,col,value),最后记得保存,sheet.save(**.xlsx)。
list2 = list(set(name_))
k = 2
for i in list2:
#a = list_x.append(i)
#b = list_y.append(name_.count(i)) #将关键词和次数分别放入列表
look_up_table_sheet.cell(k,6,i)
look_up_table_sheet.cell(k,7,name_.count(i))
k += 1
look_up_table_excel.save(look_up_table_path)
最后成品,F1和G1可以手动写个表头,成品如下
虽然最后代码很简单,但是着实费了不少功夫,开始找了什么将数据放入字典,转成DataFrame,在write进,然后因为基础列表字典的操作不熟悉,搞了半天,最后找到这个办法,可能不是最好的,因为还想降序输出的,但是一阶段先这样吧!