Python读取CSV文件画图实战指南(手把手保姆级教程)

一、为什么要学这个?(超实用场景)

各位老铁们!今天咱们要解锁的是数据分析中最经典的场景:读取CSV数据+可视化呈现(简直是大厂面试的送分题啊!!!)。无论是处理销售数据、分析实验结果,还是搞机器学习,CSV文件都是最常用的数据载体形式。相信我,这套组合拳学会了,你的数据分析效率直接起飞~

二、环境准备(3分钟搞定)

2.1 必须安装的库

pip install pandas matplotlib  # 这两个神器必须装!

2.2 推荐工具

用Jupyter Notebook(交互式编程神器)或者VS Code(装Python插件)都行。我个人更推荐Jupyter,边写代码边看图表特别方便(亲测效率翻倍!)

三、完整代码流(含踩坑指南)

3.1 读取CSV文件

import pandas as pd

# 重点注意编码格式!中文windows系统默认是gbk
data = pd.read_csv('sales_data.csv', encoding='utf-8') 

# 查看前5行(重要!快速检查数据是否正常)
print(data.head())  

常见报错解决

  • UnicodeDecodeError:把encoding换成’gbk’或’gb2312’试试
  • FileNotFoundError:检查文件路径!建议用绝对路径如r’C:\data\test.csv’

3.2 数据清洗(关键步骤!)

# 处理缺失值(超级重要!)
data = data.dropna()  # 删除有空值的行

# 转换日期格式(时间序列分析必备)
data['date'] = pd.to_datetime(data['date'])

# 过滤异常值(根据业务需求调整)
data = data[data['sales'] > 0]  

3.3 画图实战(5种常用图表)

3.3.1 折线图(趋势分析)
import matplotlib.pyplot as plt

plt.figure(figsize=(12,6))  # 设置画布大小
plt.plot(data['date'], data['sales'], 
         color='#FF6B6B',  # 十六进制颜色码
         linestyle='--', 
         linewidth=2,
         marker='o')

plt.title('月度销售趋势', fontsize=14, fontweight='bold')
plt.xlabel('日期', fontsize=12)
plt.ylabel('销售额(万元)', fontsize=12)
plt.grid(True, linestyle=':', alpha=0.7)  # 半透明网格线
plt.xticks(rotation=45)  # X轴标签旋转45度
plt.tight_layout()  # 自动调整布局
plt.show()
3.3.2 柱状图(对比分析)
# 按地区分组统计
region_sales = data.groupby('region')['sales'].sum()

plt.bar(region_sales.index, region_sales.values,
        color=['#4ECDC4', '#45B7D1', '#9CDE9F'],
        edgecolor='black')

# 添加数据标签(让图表更专业!)
for i, v in enumerate(region_sales.values):
    plt.text(i, v+1000, f'{v:,}', 
             ha='center', 
             fontsize=10)

plt.title('各地区销售总额对比')
plt.savefig('sales_by_region.png', dpi=300)  # 保存高清图

3.4 高级技巧(让图表更专业)

3.4.1 双Y轴图表
fig, ax1 = plt.subplots()

ax1.plot(data['date'], data['sales'], 'g-')
ax1.set_xlabel('日期')
ax1.set_ylabel('销售额', color='g')

ax2 = ax1.twinx()  # 创建第二个Y轴
ax2.plot(data['date'], data['profit'], 'b--')
ax2.set_ylabel('利润', color='b')

plt.title('销售额与利润趋势对比')
3.4.2 动态交互图表(Bonus!)
# 需要安装plotly
import plotly.express as px

fig = px.scatter(data, x='sales', y='profit',
                 size='customer_count', 
                 color='region',
                 hover_name='city',
                 trendline='ols')  # 自动添加趋势线

fig.show()  # 会弹出浏览器显示可交互图表

四、避坑指南(血泪经验)

  1. 中文显示问题
    添加这两行代码解决中文乱码:

    plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文字体
    plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题
    
  2. 图表模糊问题
    保存图片时加上dpi参数:

    plt.savefig('chart.png', dpi=300, bbox_inches='tight') 
    
  3. 大数据处理技巧
    CSV文件超过100MB时,用chunksize分块读取:

    chunk_iter = pd.read_csv('big_data.csv', chunksize=10000)
    for chunk in chunk_iter:
        process(chunk)  # 分批处理
    

五、项目实战思路

举个真实案例:分析某电商618销售数据

  1. 读取CSV(含日期、商品类目、销售额、用户地区等字段)
  2. 清洗数据(过滤退货订单、补全缺失地址)
  3. 可视化:
    • 24小时销售趋势折线图
    • 各省份销售额热力图
    • 各品类销售额占比饼图
    • 价格与销量的散点图

Pro Tip:把常用绘图代码封装成函数,比如:

def create_line_chart(df, x_col, y_col, title):
    plt.figure(figsize=(10,6))
    plt.plot(df[x_col], df[y_col])
    # ...其他通用设置...
    return plt

六、资源推荐

  1. Matplotlib官方样式表
    执行print(plt.style.available)查看所有预设样式
    推荐使用:

    plt.style.use('seaborn')  # 比默认样式好看10倍!
    
  2. 配色网站

    • coolors.co(自动生成配色方案)
    • colorbrewer2.org(专业统计图表配色)
  3. 学习资料

    • 《Python数据可视化之美》
    • Matplotlib官网Gallery(直接抄代码!)

最后说句掏心窝的话:数据可视化不是炫技,关键是清晰传达信息!多看看《经济学人》这类专业媒体的图表,培养数据叙事能力才是王道~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值