代码实例:
1)包含
df1=df[ df["学号"].isin(myNumber)]
2)不包含
df1=df[ ~df["学号"].isin(myNumber)]
3)多条件
或(满足某一个即可)
filt_1 = df['name'].isin(['网易','百度'])
filt_2 = df['age'] == df['age'].min()
df2= df[ filt_1 | filt_2 ]
并且(同时满足多个条件)
filter1 = data["Gender"].isin(["Female"])
filter2 = data["Team"].isin(["Engineering", "Distribution", "Finance" ])
data[filter1 & filter2]
=======================================================
1. DataFrame条件查询操作
获取DataFrame中满足条件的数据
基本格式:
df.loc[条件...]
df.query('条件...')
loc和query如果跟多个条件可以用&、|表示条件之间的关系
#获取Age大于60且小于80的科学家信息
scientists.loc[(scientists['Age']>60)&(scientists['Age']<80)]
scientists.loc[(scientists.Age>60)&(scientists.Age<80)]
scientists.query('Age > 60 & Age < 80')
2. DataFrame分组聚合操作
指定列分组,并对分组数据的相应列进行行相应的聚合操作
基本格式:
df.groupby(列标签,...).列标签.聚合函数()
df.groupby(列标签,...).agg({'列标签':'聚合',...})
df.groupby(列标签,...).aggregate({'列标签':'聚合',...})
如果聚合的列标签只有一个,则返回的是一个Series数据
常见聚合函数:
方式 说明
mean 计算平均值
max 计算最大值
min 计算最小值
sum 求和
count 计数(非空数据数目)
#按照Occupation职业分组,并计算每组年龄的平均值
scientists.groupby('Occupation').Age.mean()
scientists.groupby('Occupation')['Age'].mean()
#按照Occupation职业分组,并计算每组人数和年龄的平均值
scientists.groupby('Occupation').agg({'Name':'count','Age':'mean'})
3. DataFrame排序操作
基本格式:
方法 说明
df.sort_values(by=['列标签'],ascending=True) 将DataFrame按照指定列标签按升序进行排序
df.sort_index(ascending=True) 将DataFrame按照行标签升序排序
ascending参数默认是True表示升序
seies也可以使用sort_values和sort_index函数进行排序,只不过series的sort_values方法没有by参数
#按照 Age 从小到大进行排序
scientists.sort_values(by=['Age'],ascending=True)
#按照 Age 从大到小进行排序
scientists.sort_values(by=['Age'],ascending=False)
# 按照行标签从大到小进行排序
scientists.sort_index(ascending=False)
4. nlargest和nsmallest函数
基本格式:
方法 说明
df.nlargest(n,columns=‘列标签’)
按照columns指定的列进行降序,并取前n行数据
df.nsmallest(n,columns=‘列标签’) 按照columns指定的列进行升序,并取前n行数据
#获取 Age 最大的前 3 行数据
scientists.nlargest(3,columns='Age')
#获取 Age 最小的前 3 行数据
scientists.nsmallest(3,columns='Age')