You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.3 KiB

import csv
import re
from collections import Counter
# 正则表达式匹配时间
time_pattern = re.compile(r'\d{4}-\d{2}')
# 初始化计数器
date_counts = Counter()
# 打开并读取CSV文件
with open('congtent.csv', mode='r', encoding='utf-8') as file:
csv_reader = csv.reader(file)
# print(csv_reader)
# header = next(csv_reader) # 跳过标题行
for row in csv_reader:
# print(row)
time = row[14]
# print("time", time)
# 搜索时间值
time_match = time_pattern.search(time)
if time_match:
# print(f"Found time: {time_match.group()}")
date = time_match.group()
date_counts[date] += 1
# 打印每一天的时间出现次数
for date, count in date_counts.items():
print(f"{date}: {count} times")
# 可视化展示
dates = list(date_counts.keys())
counts = list(date_counts.values())
print(dates)
print(counts)
from pyecharts.charts import Bar
from pyecharts import options as opts
# 创建柱状图
bar = (
Bar()
.add_xaxis(dates)
.add_yaxis("数量", counts)
.set_series_opts(itemstyle_opts={'color': 'blue'})
.set_global_opts(title_opts=opts.TitleOpts(title="日期对应数量柱状图"))
)
# 生成html文件可选
bar.render("bar_chart.html")