python 11Pandas数据可视化实验

实验目的:

学会使用Pandas操作数据集,并进行可视化。

数据集描述:

该数据集是CNKI中与"中药毒理反应"相关的文献信息,包含文章题目、作者、来源(出版社)、摘要、发表时间等信息。

实验要求:

  1. 使用Pandas读取数据集。
  2. 统计每年的发文数量,并绘制折线图。
  3. 统计出版社的发文量信息,列出发文前10位的出版社。
  4. 使用jieba分词,对摘要进行分词统计,制作词频前30位的词云图。(需安装jieba分词和词云工具包)。

实验过程:

为了完成这个实验,你需要在你的Python环境中安装Pandas, jieba, matplotlib, 和 wordcloud这几个库。如果你还没有安装,可以通过以下命令进行安装:

python 复制代码
pip install pandas jieba matplotlib wordcloud

导入库,导入文件(文件名称为 ansi.csv),打印几行看看导入情况

python 复制代码
import pandas as pd
df = pd.read_csv('./ansi.csv')
df.head()

通过输出查看文件的表头是什么

python 复制代码
print(df.columns)

统计每年的发文数量,并绘制折线图

python 复制代码
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
df['年'] = pd.to_datetime(df['5'], format='%Y-%m-%d %H:%M', errors='coerce').dt.year
year = df['年'].value_counts().sort_index()
plt.figure(figsize=(10, 6))
plt.plot(year.index, year.values, marker='o')
plt.title('每年中药毒理反应文献发表数量')
plt.xlabel('年份')
plt.ylabel('发表数量')
plt.grid(True)
plt.show()

统计出版社的发文量信息,列出发文前10位的出版社

python 复制代码
publisher = df['2'].value_counts()
top = publisher.head(10)
print("发文前10位的出版社:")
print(top)

使用jieba分词,对摘要进行分词统计,制作词频前30位的词云图

python 复制代码
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt


def tokenize_abstracts(abstracts):
    all_words = []
    for abstract in abstracts:
        words = jieba.cut(abstract, cut_all=False)
        all_words.extend(words)
    return all_words

abstracts = df['4'].dropna().tolist()

# 分词
all_words = tokenize_abstracts(abstracts)

# 计算词频
word_freq = {word: all_words.count(word) for word in set(all_words)}

# 制作词云
wordcloud = WordCloud(font_path='simhei.ttf',width=800, height=600, background_color='white', max_words=30).generate_from_frequencies(word_freq)

# 显示词云图
plt.figure(figsize=(10, 8))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
相关推荐
dev派1 小时前
AI Agent 系统中的常用 Workflow 模式(2) Evaluator-Optimizer模式
python·langchain
前端付豪3 小时前
AI 数学辅导老师项目构想和初始化
前端·后端·python
用户0332126663673 小时前
将 PDF 文档转换为图片【Python 教程】
python
悟空爬虫5 小时前
UV实战教程,我啥要从Anaconda切换到uv来管理包?
python
dev派5 小时前
AI Agent 系统中的常用 Workflow 模式(1)
python·langchain
明月_清风7 小时前
从“能用”到“专业”:构建生产级装饰器与三层逻辑拆解
后端·python
曲幽16 小时前
数据库实战:FastAPI + SQLAlchemy 2.0 + Alembic 从零搭建,踩坑实录
python·fastapi·web·sqlalchemy·db·asyncio·alembic
用户83562907805121 小时前
Python 实现 PowerPoint 形状动画设置
后端·python
ponponon1 天前
时代的眼泪,nameko 和 eventlet 停止维护后的项目自救,升级和替代之路
python
Flittly1 天前
【从零手写 ClaudeCode:learn-claude-code 项目实战笔记】(5)Skills (技能加载)
python·agent