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') 其中 x 和 y 参数分别指定条形图中每个条形的位置和高度,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()

五.效果展示

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

相关推荐
朝朝辞暮i4 小时前
C++ 第 23 课:class —— 开始真正进入面向对象
开发语言·c++·算法
言乐65 小时前
HTML视频审核模型
python·django·virtualenv·pygame·tornado
小师兄吃牛肉5 小时前
C语言篇:宏
c语言·开发语言
郑同学的笔记5 小时前
【c++随笔28】strcmp 和 memcmp对比
开发语言·c++
言乐66 小时前
Python根据无法识别搜索词找出可能输入内容模型
开发语言·python·django·virtualenv·pygame
weixin_307779136 小时前
有限产能智能排产与动态重排智能体:从需求解构到技术实现
开发语言·人工智能·算法·架构
kakakahahahaha6 小时前
Windows C盘临时文件清理:%temp%、Windows Temp、Prefetch、Windows.old与hiberfil.sys处理指南
c语言·开发语言·windows
朝朝辞暮i6 小时前
C++ 第 27 课:智能指针 shared_ptr
开发语言·c++·算法
yl45306 小时前
硫酸泄露处理生产商怎么选才够专业
大数据·人工智能·python
朝朝辞暮i6 小时前
C++ 第 29 课:回调函数 Callback
开发语言·c++·算法