Pandas 是一个强大的 Python 数据分析库,提供了高性能、易于使用的数据结构和数据分析工具。它主要包括两个核心数据结构:Series 和 DataFrame。DataFrame 是一个二维表格型数据结构,类似于 Excel 表格或 SQL 表。
根据列索引根据值过滤行的需求,常用的方法有:
query
方法:通过字符串表达式过滤行。loc
和 iloc
方法:通过标签或位置过滤行。在数据分析过程中,经常需要根据某些列的值来过滤数据,以便进行进一步的分析或处理。例如,在金融数据分析中,可能需要根据股票价格过滤出特定范围内的数据;在用户行为分析中,可能需要根据用户的年龄或消费金额过滤出特定的用户群体。
import pandas as pd
# 创建示例 DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 35, 40],
'Salary': [50000, 60000, 70000, 80000]
}
df = pd.DataFrame(data)
# 根据 'Age' 列过滤出年龄大于 30 的行
filtered_df = df[df['Age'] > 30]
print(filtered_df)
query
方法import pandas as pd
# 创建示例 DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 35, 40],
'Salary': [50000, 60000, 70000, 80000]
}
df = pd.DataFrame(data)
# 根据 'Age' 列过滤出年龄大于 30 的行
filtered_df = df.query('Age > 30')
print(filtered_df)
loc
方法import pandas as pd
# 创建示例 DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 35, 40],
'Salary': [50000, 60000, 70000, 80000]
}
df = pd.DataFrame(data)
# 根据 'Age' 列过滤出年龄大于 30 的行
filtered_df = df.loc[df['Age'] > 30]
print(filtered_df)
KeyError
?原因:通常是因为列名拼写错误或列名不存在。
解决方法:
df.columns
查看 DataFrame 的所有列名。# 检查列名
print(df.columns)
query
方法时会出现 SyntaxError
?原因:通常是因为字符串表达式语法错误。
解决方法:
# 正确的 query 方法示例
filtered_df = df.query('(Age > 30) & (Salary > 60000)')
print(filtered_df)
希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云