数据“整容”术:Pandas+Matplotlib让你的数据会说话

最近在学习 Python 数据分析,我用 PyCharm 写了几段代码,把从数据清洗到可视化的完整流程跑了一遍。今天就来分享一下我的实战心得,希望能帮到刚入门的朋友。

📊 一、Pandas:数据处理的基石

数据分析的第一步,永远是处理原始数据。Pandas 作为 Python 数据分析的核心库,让这个过程变得非常高效。

  1. 创建与查看 DataFrame我们可以用字典快速构造一个数据集,然后转换成 DataFrame 表格,这样就能直观地看到数据结构。
python 复制代码
import pandas as pd

dic = {'name': ['kiti', 'beta', 'peter', 'tom'],
           'age':[20,18, 35,21],
           'gender': ['f', 'f', 'm', 'm']}
df = pd.DataFrame(dic)
print(df)


df = df.sort_values(by=['age'])
df = df.sort_values(by=['age'], ascending=False)
a= df['gender']
b = a.replace(['m', 'f'],['male', 'female'])
df['gender'] = b
  1. 数据排序

sort_values() 是我最常用的函数之一,它可以让我快速按某一列排序,找到极值。

python 复制代码
# 按年龄升序
df = df.sort_values(by=['age'])
# 按年龄降序
df = df.sort_values(by=['age'], ascending=False)

这一步能帮我快速定位到年龄最大或最小的记录,为后续分析提供线索。

  1. 数据映射与替换

原始数据里的简写(比如 'm' 和 'f')可读性很差,用 replace() 可以轻松映射成更直观的文字。

python 复制代码
a = df['gender']
b = a.replace(['m', 'f'], ['male', 'female'])
df['gender'] = b

处理后,gender 列就会显示 male 和 female,整个数据集的可读性立刻提升。

  1. 文件读写

数据分析离不开和外部文件打交道,Pandas 支持多种格式的读写,非常方便。

python 复制代码
import pandas as pd
df_1 = pd.read_csv("../numpy/data1.csv")

df_2 = pd.read_csv("../numpy/data2.csv", encoding='utf8', header=None)

df_3 = pd.read_excel("data3.xlsx") #

df_4 = pd.read_table("data4.txt",sep=',',header=None)

df_1.to_csv("导出.csv",index=True, header=True)

df_1.to_excel("导出.xlsx",index=True, header=True)

📌 小技巧:遇到乱码问题时,可以试试 encoding='utf8' 或 'gbk';如果文件没有表头,记得设置 header=None。

  1. 缺失值处理

真实数据总会有缺失值,Pandas 提供了两种核心处理方式:

python 复制代码
import pandas as pd

df = pd.read_csv(r"../numpy/data1.csv", encoding='gbk')
na = df.isnull()

df1 = df.fillna('1')
df2 = df.dropna()
print(df2)

• fillna():适合缺失值较少,且可以用默认值或统计值填充的场景。

• dropna():适合缺失值比例较高,删除后不影响整体分析的场景。

🎨 二、Matplotlib:让数据"活"起来

处理完数据,下一步就是把它变成直观的图表。Matplotlib 是 Python 最经典的可视化库,上手也很快。

  1. 基础散点图散点图可以清晰地展示两个变量之间的关系,用 plot() 函数就能快速实现。
python 复制代码
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([10, 20, 25, 30, 40])
plt.plot(x, y, color='red', marker='*')
plt.title('Scatter Plot Example')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.show()

运行这段代码,你就能看到一个带星型标记的红色散点图,非常直观。

  1. 多图布局

如果想在一张图里展示多个图表,subplots() 是个好帮手。我用它画了四个三角函数的对比图:

python 复制代码
import numpy as np
x = np.linspace(0, 10, 10000)#
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)
y4 = np.sin(x ** 2)
fig, axs = plt.subplots(2, 2, figsize=(10, 8))#
axs[0, 0].plot(x, y1, 'r')
axs[0, 0].set_title('sin(x)')
axs[0, 1].plot(x, y2, 'g')

axs[0, 1].set_title('cos(x)')
axs[1, 0].plot(x, y3, 'b')
axs[1, 0].set_title('tan(x)')
axs[1, 1].plot(x, y4, 'm')
axs[1, 1].set_title('sin(x^2)')
plt.show()

这样,我就能在一个画布上同时对比正弦、余弦、正切和正弦平方函数的曲线变化,一目了然。

✨ 写在最后

从数据处理到可视化,这一套流程走下来,我深刻体会到 Python 数据分析的魅力。Pandas 让我们能高效地清洗和整理数据,而 Matplotlib 则让这些数据变成了会说话的图表。

这些只是入门级的操作,但它们是数据分析的基石。随着学习的深入,我还会探索更多进阶技巧,比如用 Seaborn 画更漂亮的图,或者用 Scikit-learn 做机器学习预测。

相关推荐
开发者小天7 天前
python安装 Matplotlib 库 安装 Seaborn 库
开发语言·python·matplotlib
weixin_468635298 天前
Pandas 速查笔记
笔记·pandas
Dxy12393102169 天前
DataFrame缺失值处理:完整指南与实战技巧
python·pandas·dataframe
kong790692810 天前
Python核心语法-Pandas读写csv和tsv文件
pandas
Dxy123931021611 天前
DataFrame时间序列操作:从基础到高级的时间数据处理指南
pandas
kong790692812 天前
Python核心语法-Matplotlib简介
开发语言·python·matplotlib
-To be number.wan13 天前
用 Pandas 分析自行车租赁数据:从时间序列到天气影响的完整实训
python·数据分析·pandas·数据可视化
Dxy123931021614 天前
DataFrame索引功能详解
pandas
没事偷着乐琅16 天前
二、Pandas 是啥 是数据库吗?
数据库·pandas
Flying pigs~~16 天前
Pandas绘图和Seaborn绘图
数据挖掘·数据分析·pandas·seaborn·python可视化