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()

五.效果展示

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

相关推荐
kaikaile1995几秒前
基于MATLAB的滑动轴承弹流润滑仿真程序实现
开发语言·matlab
禹凕2 分钟前
Python编程——进阶知识(MYSQL引导入门)
开发语言·python·mysql
阿钱真强道4 分钟前
13 JetLinks MQTT:网关设备与网关子设备 - 温控设备场景
python·网络协议·harmonyos
我的xiaodoujiao8 分钟前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 47--设置Selenium以无头模式运行代码
python·学习·selenium·测试工具·pytest
傻乐u兔1 小时前
C语言进阶————指针4
c语言·开发语言
大模型玩家七七1 小时前
基于语义切分 vs 基于结构切分的实际差异
java·开发语言·数据库·安全·batch
历程里程碑1 小时前
Linux22 文件系统
linux·运维·c语言·开发语言·数据结构·c++·算法
牛奔2 小时前
Go 如何避免频繁抢占?
开发语言·后端·golang
寻星探路6 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
lly2024068 小时前
Bootstrap 警告框
开发语言