Pandas是 Python 数据分析中的顶梁柱,简直就是 Excel 的代码版。它帮我们轻松搞定表格型数据:无论是数据清洗、处理,还是分析,都能得心应手。你可以把它想象成一个超强的工具箱,里面装满了处理数据的“十八般武艺”。今天咱们就来看看 Pandas 怎么用,能干点啥。
1、安装 Pandas 和基本概念
用 Pandas 之前,先得装上这个库。直接用 pip 玩命敲下去:
pip install pandas
装完后,咱们来认识两个 Pandas 的核心概念:Series和DataFrame。简单讲,Series 是带索引的一维数据,DataFrame 是由多个 Series 组成的二维数据,也就是表格。
先来个简单例子,创建一个 Series 和一个 DataFrame:
import pandas as pd
# 创建一个 Series
s = pd.Series([10, 20, 30], index=["a", "b", "c"])
# 创建一个 DataFrame
data = {
"Name": ["Alice", "Bob", "Charlie"],
"Age": [25, 30, 35],
"Score": [90, 85, 88],
}
df = pd.DataFrame(data)
print(s)
print(df)
运行结果:
a 10
b 20
c 30
dtype: int64
Name Age Score
0 Alice 25 90
1 Bob 30 85
2 Charlie 35 88
温馨提示:DataFrame 的列就像 Excel 的列头,Series 比较像一列数据。两者配合使用,功能满分。
2、读写数据文件
Pandas 的拿手好戏之一就是读写文件。不管是 CSV、Excel,还是数据库里的数据,都能轻松搞定。以下是读写 CSV 文件的简单示例:
读取 CSV 文件
df = pd.read_csv("data.csv")
print(df.head()) # 查看前 5 行写入 CSV 文件
df.to_csv("output.csv", index=False)
温馨提示:index=False是为了不把 DataFrame 的索引写进文件里,避免生成多余的一列。
3、常见数据操作
下面是一些 Pandas 最常用的操作,直接上代码。
查看数据
print(df.head(3)) # 查看前 3 行
print(df.tail(2)) # 查看后 2 行
print(df.info()) # 数据结构信息
print(df.describe()) # 数据统计信息选择列和行
# 选择列
print(df["Name"])
# 选择行
print(df.iloc[1]) # 按行号选
print(df.loc[0]) # 按索引选筛选数据
# 筛选 Age > 25 的数据
filtered = df[df["Age"] > 25]
print(filtered)
运行结果:筛选出年龄大于 25 的人。
4、数据清洗
Pandas 还特别擅长清洗数据,处理那些让人头疼的缺失值、重复值之类的。
处理缺失值
df = pd.DataFrame({
"Name": ["Alice", "Bob", None],
"Age": [25, None, 35],
"Score": [90, 85, None],
})
# 填充缺失值
df["Age"] = df["Age"].fillna(30) # 用 30 填充缺失值
# 删除含有缺失值的行
df = df.dropna()
print(df)处理重复值
df = pd.DataFrame({
"Name": ["Alice", "Bob", "Bob"],
"Age": [25, 30, 30],
})
# 去重
df = df.drop_duplicates()
print(df)
温馨提示:fillna和dropna是 Pandas 的两大救命神器,遇到缺失值别慌,它们保你平安。
5、数据分析与统计
Pandas 还能帮你快速做一些统计分析,比如求平均数、最大值之类的。
基本统计操作
print(df["Age"].mean()) # 平均值
print(df["Score"].max()) # 最大值
print(df["Age"].value_counts()) # 统计每个值出现的次数分组统计
# 按 Name 分组,计算平均分
grouped = df.groupby("Name")["Score"].mean()
print(grouped)6、数据可视化
虽然 Pandas 不是专门的可视化工具,但它能跟 Matplotlib 搭配,画些简单的图表。
import matplotlib.pyplot as plt
df["Age"].plot(kind="bar") # 柱状图
plt.show()7、使用列表推导式和 lambda 函数
有时候需要在 DataFrame 里新增一列,Pandas 支持用lambda函数和列表推导式轻松搞定。
新增一列
df["AgeGroup"] = df["Age"].apply(lambda x: "Young" if x < 30 else "Old")
print(df)
运行结果:新增了一列AgeGroup,标记每个人是年轻还是年长。
8、常见错误和注意事项
•索引问题:iloc是按行号索引,loc是按索引值索引,别搞混了。
•缺失值处理:fillna和dropna是经常用的,记住它们的语法。
•链式操作问题:有时候你连续操作多步,可能会丢掉中间的修改。用inplace=True或者分步操作能避免问题。
总结
Pandas 是数据分析的好帮手,功能强大,操作简单。无论是读取数据、清洗数据,还是分析数据,Pandas 都可以轻松搞定。熟练掌握它,你的代码效率会飞速提升!
领取专属 10元无门槛券
私享最新 技术干货