选择和过滤数据是数据分析中的基本技巧,让我们深入了解如何在 Pandas 中执行这些操作。
df['column_name']
。df[df['column_name'] > value]
。loc
和 iloc
: loc
用于基于标签的选择,而 iloc
用于基于整数位置的选择。假设你有一份电影评分的数据集,需要根据不同的条件选择和过滤数据。
数据准备
import pandas as pd
# 示例电影评分数据
data = {
'movie_id': [1, 2, 3, 4, 5],
'title': ['Movie A', 'Movie B', 'Movie C', 'Movie D', 'Movie E'],
'rating': [8.5, 7.0, 9.0, 6.5, 7.5]
}
movies_df = pd.DataFrame(data)
选择和过滤数据
# 选择评分高于8的电影
high_rating_movies = movies_df[movies_df['rating'] > 8]
# 使用 loc 选择特定列
title_ratings = movies_df.loc[:, ['title', 'rating']]
处理一份股市数据,筛选出特定条件下的股票。
数据准备
# 示例股市数据
stock_data = {
'stock_id': ['S1', 'S2', 'S3', 'S4'],
'price': [100, 150, 90, 120],
'volume': [300, 200, 500, 100]
}
stocks_df = pd.DataFrame(stock_data)
数据筛选
# 选择价格低于120的股票
low_price_stocks = stocks_df[stocks_df['price'] < 120]
假设你正在处理一份客户订单的数据集,需要根据客户ID和订单量进行筛选。
数据准备
# 示例客户订单数据
order_data = {
'order_id': [101, 102, 103, 104],
'customer_id': [1, 2, 2, 1],
'quantity': [3, 4, 5, 2]
}
orders_df = pd.DataFrame(order_data)
数据查询
# 选择特定客户的订单
customer_orders = orders_df[orders_df['customer_id'] == 2]
# 使用 iloc 选择前两行
first_two_orders = orders_df.iloc[:2]
通过这些案例,我们演示了如何在 Pandas 中选择和过滤数据。无论是电影评分、股市数据还是客户订单,掌握这些技巧可以帮助你更有效地对数据进行分析。
在数据分析中,能够有效地对数据进行排序和排名是非常重要的。这不仅帮助我们快速找到重要信息,还能揭示数据的潜在模式。
sort_values()
方法根据一列或多列的值对数据进行排序。rank()
方法为每行分配一个排名。ascending=False
,可以进行降序排序。假设你有一份销售员的销售业绩数据,需要对其进行排序和排名。
数据准备
import pandas as pd
# 示例销售业绩数据
sales_data = {
'salesperson': ['Alice', 'Bob', 'Charlie', 'David'],
'sales': [200, 150, 300, 250]
}
sales_df = pd.DataFrame(sales_data)
排序和排名
# 根据销售额排序
sorted_sales_df = sales_df.sort_values(by='sales', ascending=False)
# 为销售员排名
sorted_sales_df['rank'] = sorted_sales_df['sales'].rank(ascending=False)
处理一份学生的考试成绩表,根据成绩进行排序。
数据准备
# 示例学生考试成绩数据
exam_scores_data = {
'student': ['John', 'Emma', 'Mark', 'Laura'],
'score': [88, 92, 75, 85]
}
scores_df = pd.DataFrame(exam_scores_data)
数据排序
# 根据考试成绩排序
sorted_scores_df = scores_df.sort_values(by='score', ascending=False)
假设你有一份产品的顾客评价数据,需要根据评价分数排序。
数据准备
# 示例产品评价数据
product_reviews_data = {
'product_id': [101, 102, 103, 104],
'review_score': [4.5, 3.8, 4.2, 5.0]
}
reviews_df = pd.DataFrame(product_reviews_data)
评价排序
# 根据评价分数排序
sorted_reviews_df = reviews_df.sort_values(by='review_score', ascending=False)
通过这些案例,我们展示了如何在 Pandas 中有效地对数据进行排序和排名。这些技巧对于快速理解数据结构、识别关键信息和模式至关重要,无论是在业绩排名、学生成绩排序,还是产品评价分析中。
在数据分析的过程中,我们经常需要根据分析需求添加新的列或者删除不必要的列。掌握如何高效地进行这些操作对于数据处理来说至关重要。
df['new_column'] = value
。drop()
方法删除列,例如 df.drop('column_name', axis=1, inplace=True)
。假设你正在处理一份雇员的薪资表,需要根据他们的绩效评分调整薪资。
数据准备
import pandas as pd
# 示例雇员薪资数据
salary_data = {
'employee': ['Alice', 'Bob', 'Charlie'],
'base_salary': [30000, 40000, 50000],
'performance_score': [3.2, 4.5, 3.8]
}
salary_df = pd.DataFrame(salary_data)
添加新列
# 根据绩效评分调整薪资
salary_df['adjusted_salary'] = salary_df['base_salary'] * (1 + salary_df['performance_score'] / 10)
删除列
# 删除绩效评分列
salary_df.drop('performance_score', axis=1, inplace=True)
处理一份学生的成绩单,需要计算每个学生的总成绩。
数据准备
# 示例学生成绩数据
grades_data = {
'student': ['John', 'Emma', 'Mark'],
'math': [88, 76, 92],
'science': [85, 90, 88]
}
grades_df = pd.DataFrame(grades_data)
计算总成绩
# 计算总成绩
grades_df['total'] = grades_df['math'] + grades_df['science']
假设你有一份产品的销售记录,需要分析每个产品的总销售额。
数据准备
# 示例产品销售数据
sales_data = {
'product_id': [101, 102, 103],
'units_sold': [30, 50, 20],
'unit_price': [10, 20, 15]
}
sales_df = pd.DataFrame(sales_data)
计算总销售额
# 计算每个产品的总销售额
sales_df['total_sales'] = sales_df['units_sold'] * sales_df['unit_price']
通过这些案例,我们展示了如何在 Pandas 中有效地添加和删除列,以及如何基于现有数据创建新的数据列。这些技巧是数据预处理和特征工程的关键部分,无论是处理薪资数据、学生成绩,还是产品销售记录。