代码实例:
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" )
datafilter1 \& filter2
=======================================================
- 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')
- 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'})
- 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)
- 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')