1.数据筛选:
# 计算各个国家的年龄中位数大于39的行数据,若是大于39,则会返回True,表示该行被标记为True,否则被标记为False
booleans= df['Med Age']>39
#打印booleans的前10行数据
booleans.head(10)
# 通过以上操作得到了一组bool值,每个bool值对应了一行数据,为True,表示对应的行会留下,否则,则去除
df[booleans]
# TODO
# 打印数据的维度
df[booleans].shape
1.1多条件联合筛选:
bool1=df['Med Age']>39
bool2=df['Population']>50000000
df[bool1 & bool2]
&是一个位运算符,它会对连接的两个值进行逻辑与运算,在键盘上使用shift+&可以输入&符号。
它的作用可以解释为,若是其中一个值为False,那么结果就为False,若是两个值均为True,那么结果也为True。
'''
例子:
import pandas as pd
n1 = [True,True,False,False]
n2 = [True,False,True,False]
dict_n = {'n1':n1,'n2':n2}
df = pd.DataFrame(dict_n)
df['| result'] = df['n1'] | df['n2']
df
输出:
1.2列表筛选:
DataFrame和Series都提供了isin() 方法,用来判断其中的元素是否属于某个列表
country_list=['Germany','France','United Kingdom']
booleans=df['Country'].isin(country_list)
df[booleans]
2.数据排序
- 按行索引倒序排序:
df.sort_index(inplace=True,ascending=False) - 按列进行排序:
df.sort_values(by,[para]) - 多列排序:
df.sort_values(by=[‘Med Age’,‘Population’],ascending=[True,False]).head(10)
3.筛选和排序联合
med_age_filter=df['Med Age']<20
df[med_age_filter].sort_values(by='Population',ascending=False).head(5)
4.pandas常用统计函数
pandas里常用的统计函数包括:
- count( ):统计列表中非空数据的个数
- nunique( ):统计非重复的数据的个数
- sum( ):统计列表中所有数值的和
- mean( ):计算列表中数据的平均值
- median( ):统计列表中数据的中位数
- max( ):求列表中数据的最大值
- min( ):求找列表中数据的最小值
- idxmax( ):返回最大值对应的索引值
- idxmin( ):返回最小值对应的索引值
举例:
#年龄中位数最小的国家以及该国家年龄中位数
(df['Med Age'].idxmin() , df['Med Age'].min())
#陆地面积最大的国家以及该国家陆地面积
(df['Land Area'].idxmax(),df['Land Area'].max())