首先还是准备一张练习的源数据表。
import pandas as pd
excel_path = r'E://temp/raw.xlsx'
# 读取一个excel文件为DataFrame,并设置索引为id这一列
df = pd.read_excel(excel_path, index_col='id')
# 定义两个函数创建筛选条件
def age_20_to_30(a):
return 20<=a<30
def level_score(s):
return 80<=s<100
# 分别将每列的数据传入指定函数中筛选一遍
df = df.loc[df['age'].apply(age_20_to_30)].loc[df['score'].apply(level_score)]
print(df)
loc[Series.apply(function)]
函数可以把DataFrame指定列那个Series的每个数据挨个传入函数中筛选,可以同时在后面点多个筛选条件。
取Series
前面说了每一个excel在pandas中取出来得到的是一个DataFraem对象。可以通过键取值df['age']
也可以像对象一样通过点属性的方式取df.age
, 得到的结果是一样的。