こんにちはーー
Pythonで重複する文字列をカウントしてエクセルに出力したので記事にしました。
この記事が誰かの役に立てば幸いです。
概要
↓の記事で出力したcsvをエクセルに変換して使用します。
↓のエクセルのC列の文字列に対して重複をカウントしてOとP列に出力します。
コード
作成したコードは↓です。
collections.Counter()
を使って、重複をカウントします。
import openpyxl from openpyxl.styles.fonts import Font import collections name_xlsx = "./test.xlsx" out_xlsx ="./addd_count.xlsx" #エクセルの読み込み wb = openpyxl.load_workbook(name_xlsx) ws = wb['Sheet1'] #リストの作成 list=[] max_row = ws.max_row for i in range(2,max_row): cha = 'C'+str(i) cha2 = ws[cha].value list.append(cha2) #重複をカウント c = collections.Counter(list) #エクセルへの書き込み for j,k in enumerate(c.values()): ws['O'+str(j+2)] = int(f"{k}") for j,k in enumerate(c.keys()): ws['P'+str(j+2)] = f"{k}" ws['O'+str(1)] ="カウント合計" ws['P'+str(1)] ="チャンネル名" #フォントの変換 font = Font(bold=False,name="Meiryo UI") for row in ws.iter_rows(): for cell in row: ws[cell.coordinate].font = font #セーブ wb.save(out_xlsx)
プログラム実行結果
実行した結果です。
意図通りO列に重複をカウントした結果を出力できました。
以上です!!
ざっくり動画にもしています。
コメント