数据“整容”术: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 做机器学习预测。

相关推荐
奔跑的蜗牛FelixChioa20 小时前
python学习之通过pandas处理excel和csv数据
python·pandas
AI_56781 天前
Pandas高效清洗:5个函数让脏数据处理快80%
人工智能·pandas
闲人编程1 天前
Python在数据工程中的角色:Airflow和Pandas实践
开发语言·python·pandas·airflow·数据工程·codecapsule
小玲男友1 天前
三大库-pandas
python·pandas
星辰徐哥1 天前
人工智能从入门到精通:NumPy 与 Pandas 数据分析基础
人工智能·ai·数据分析·numpy·pandas
玄同7651 天前
NumPy 与 Pandas 中「有无返回值函数」的易错点整理
人工智能·python·机器学习·数据挖掘·数据分析·numpy·pandas
普通网友1 天前
掌握 requests、BeautifulSoup 等库的网络爬虫基础,或使用 pandas 进行简单数据分析
爬虫·beautifulsoup·pandas
语文天才高斯1 天前
Dify Sandbox 如何安装第三方库(matplotlib / numpy / pandas 通用方法)
人工智能·chatgpt·numpy·pandas·matplotlib
kong79069282 天前
Python核心语法-Numpy
人工智能·numpy·pandas·python核心语法