Python读取CSV文件进行数据可视化(源码)

--------------------------------📡🔍K学啦 更多学习资料📕 免费获取-----------------------------------


目录

[一.引入pandas、matplotlib 三方库](#一.引入pandas、matplotlib 三方库)

二.读取CSV文件

三.数据的处理

四.数据可视化

五.效果展示


一.引入pandas、matplotlib 三方库

使用 pip install pandas / pip install matplotlib 在终端Terminal下载

二.读取CSV文件

在读取文件之后,我们进行print语句输出,看一下数据是否完整

python 复制代码
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('某超市的销售数据.csv')
print(data)

报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 0: invalid start byte

意思是用特定的编码方式 UTF-8 解码字节数据时发生的错误 ,CSV文件的实际编码方式可能是用其他编码方式(如 GBK, GB2312, ISO-8859-1 等)编码的

我们在PyCharm打开该CSV文件发现是乱码的,是因为CSV文件在保存时使用的编码格式与打开时所用的编码格式不匹配导致的

那我们采取 gbk 编码方式试一试

python 复制代码
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('某超市的销售数据.csv', encoding='gbk')
print(data)

这次 4万余行,17列的数据 完整的输出了,我们就可以对它进行处理

三.数据的处理

我们通过浏览部分数据,发现有些类名是重复的,要进行重复数据合并

绘制柱状图只需要两列数据就可以,这里选取第三列名称和第十四列销售数量,以下代码进行数据聚合和数据提取然后用上述的读取csv文件代码并print输出,可以看到正确的数据

python 复制代码
# 按照指定列(这里第3列是要依据合并的列,可按需修改)对重复数据进行合并,求和第14列的值
merged_data = data.groupby(data.columns[2])[data.columns[13]].sum().reset_index()

# 将合并后的数据保存为新的CSV文件,名为new_data.csv,可按需更改
merged_data.to_csv('new_data.csv', index=False)

四.数据可视化

柱状图基本要素 plt.bar(x, y, width=0.5, alpha=0.5, color='pink') 其中 xy 参数分别指定条形图中每个条形的位置和高度,width :这是一个浮点数或数组,指定条形的宽度,alpha :这是一个介于 0 和 1 之间的浮点数,指定条形的透明度。alpha=0.5 表示条形是半透明的,color指颜色

自定义函数类型

python 复制代码
def draw_bar_chart():
    plt.bar(new_data.iloc[:, 0], new_data.iloc[:, 1])
#new_data.iloc[:, 0]:这部分代码使用 .iloc 方法从 new_data DataFrame 中选取所有行(: 表示所有行)的第一列(索引为 0 的列)。这些值将作为条形图的 x 轴坐标。
#new_data.iloc[:, 1]:这部分代码同样使用 .iloc 方法从 new_data DataFrame 中选取所有行的第二列(索引为 1 的列)。这些值将作为条形图的高度(即 y 轴的值)。
    plt.title('代做找我最靠谱')
    plt.rcParams['font.sans-serif'] = ['SimHei'] #指定字体
    plt.rcParams['axes.unicode_minus'] = False  # 正常显示负号
    plt.xlabel(new_data.columns[0])#x轴标签
    plt.ylabel(new_data.columns[1])#y轴标签
    plt.show()

五.效果展示

这里只是列举了一个柱状图的例子,我相信看懂的小伙伴面对其他类型的如折线图,饼图,词云,雷达图等也能够学以致用,感谢你的关注!

相关推荐
ikun_文10 小时前
Django开启跨域请求
python·pycharm·django
外收内放10 小时前
Python与AI应用(项目开发实战:AI智能伴侣第三版)
python·学习·ai编程
别动我齐刘海10 小时前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
Logintern0910 小时前
“以一致的顺序获取锁“是预防死锁最核心、最有效的手段
python·postgresql·锁机制
计算机毕设定制辅导-无忧学长10 小时前
《基于SpringBoot的未成年人健康知识科普平台的设计与实现》
java·开发语言·vue.js·spring boot·未成年人健康知识科普平台
打工仔折腾 AI10 小时前
Prometheus 告警推钉钉:从单群 Webhook 到跨网络 Alertmanager 实战
人工智能·后端·python·性能优化
Ivanqhz10 小时前
Ping-Pong 双缓冲
开发语言·人工智能·python·深度学习·mlir
三十岁老牛再出发10 小时前
9月18日总结
python·深度学习·机器学习
m0_7345717610 小时前
深入理解C++ RAII
开发语言·c++
泡海椒10 小时前
jquick-pdf 表格实战:动态数据 PDF 报表生成
java·开发语言·pdf