1. 在 DataFrame 中进行数据筛选的基础
为什么需要筛选?
就像你最喜欢的自拍应用中的滤镜一样, pandas 的数据筛选可以帮助我们专注于最重要的内容。 我们可以排除不需要的数据,只保留真正有意义的部分。 这是数据分析的基本工具,特别是在需要准备报告或处理大规模数据集时。
我们的第一个筛选
我们从一个简单的例子开始。这里是一个包含商品销售信息的DataFrame:
import pandas as pd
data = {
"商品": ["橘子", "香蕉", "苹果", "橘子", "苹果"],
"数量": [10, 5, 8, 7, 6],
"价格": [3.5, 2.0, 4.0, 3.0, 4.5]
}
df = pd.DataFrame(data)
# 按商品名称筛选
filtered_df = df[df["商品"] == "橘子"]
print(filtered_df)
使用条件
我们可以像使用多重滤镜一样组合条件! 例如,找到销售数量大于 6 且价格不超过 3.5 的所有商品:
# 使用 & (逻辑“与”)组合条件
filtered_df = df[(df["数量"] > 6) & (df["价格"] <= 3.5)]
print(filtered_df)
记住重要点
别忘了,在 pandas 中我们使用方括号来创建筛选器, 而圆括号用于条件。你不会想成为那个忘记这些括号的人吧?
2. 数据排序
为什么排序很重要?
数据排序可以让我们在混乱中发现结构和秩序(当然如果数据集真的很混乱的话)。 比如,想象你在一个图书馆,书籍被随机丢弃——这简直是噩梦! 排序可以帮助组织信息,无论是为了分析、报告,还是仅仅为了找到所需的值。
按单列排序
让我们按商品价格升序排列DataFrame:
# 按价格升序排序
sorted_df = df.sort_values(by="价格")
print(sorted_df)
按多列排序
想象一下,你需要先按数量排序,如果数量相同, 再按价格降序排列。这里是实现方式:
# 按数量和价格排序
sorted_df = df.sort_values(by=["数量", "价格"], ascending=[True, False])
print(sorted_df)
排序的特点
注意 ascending 参数。 它可以指定你是想按升序还是降序排列数据。 如果你想“冷酷无情”地掌控数据,这会很方便。
3. 实际应用
实际任务
是时候把我们的知识应用于实践了!假设你是一家销售小工具的公司的数据分析师。 你的任务是找到所有销售数量超过100件的手机型号,并按利润降序排列它们。
# 手机销售数据
data = {
"型号": ["Phone X", "Phone Y", "Phone Z", "Phone X", "Phone Y"],
"销售量": [120, 150, 90, 130, 80],
"利润": [200, 180, 220, 210, 190]
}
df = pd.DataFrame(data)
# 筛选销售量超过100的型号
filtered_df = df[df["销售量"] > 100]
# 按利润降序排序
sorted_df = filtered_df.sort_values(by="利润", ascending=False)
print(sorted_df)
分析与讨论
使用筛选和排序的组合可以获取真正有趣和重要的数据, 无论是对你还是对你的报告来说。 就像其他工具一样,筛选和排序通过实践会变得更加强大。 别忘了,精心格式化的数据不仅是分析师的福音,也是他们最大的骄傲。
常见错误
一些新手有时会忘记在筛选条件中使用圆括号,这会导致错误。 这就像忘记给锅盖盖上盖子——一切可能会失控。 另一个常见错误是多字段排序时指定错误的排序顺序。 确保正确使用ascending,以免把一切搞得天翻地覆。
实际应用
在实际工作中,筛选和排序是任何数据分析师都不可或缺的工具。 它们可以帮助迅速从复杂的数据集中获取所需数据,并为报告做准备。 在现实世界中,它们被广泛使用:从金融科技到医学研究不等。 比如,银行可以筛选交易以检测可疑活动, 而研究人员可以对药物试验数据进行排序以发现隐藏的依赖关系。 更不用说,在求职面试中掌握这些工具也是一个有力的盟友。
4. 学习的外部资源
对于那些想要深入研究的人,我推荐查阅 pandas 的官方文档, 它是理解这个库所有功能的绝佳资源。 你可以在那里找到大量的示例和说明,帮助你专业地掌握这个工具。
GO TO FULL VERSION