目录
import pandas as pd
1.加载数据集
df=pd.read_csv('gapminder.tsv',sep='\t')
# 获取行数和列数
#shape是dataframe的属性,不是函数和方法,所以无括号
print(df.shape)
#获取列名
print(df.columns)
#获取每列的dtype
print(df.dtypes)
#获取更多数据信息
print(df.info())
2.查看列,行和单元格
2.1获取列子集
#只获取country列,并将其保存到一个变量中
country_df=df['country']
#显示前5行
print(country_df.head())
#显示最后5行
print(country_df.tail())
#查看country,continent,year列
subset=df[['country','continent','year']]
print(subset.head())
print(subset.tail)
2.2获取行子集
通过索引标签获取行子集(行名)
通过行索引获取行子集(行号)
通过索引标签或行索引获取行子集
2.2.1通过索引标签获取行子集:loc
#获取第一行
print(df.loc[0])
#获取第100行
print(df.loc[99])
#获取最后一行
print(df.tail(n=1))
#选择第一行,第100行,第1000行
print(df.loc[[0,99,999]])
2.2.2 通过行号获取行:iloc
#获取第二行
print(df.iloc[1])
#获取第100行
print(df.iloc[99])
#获取最后一行
print(df.iloc[-1])
#获取第1行,第100行,第1000行
print(df.iloc[[0,99,999]])
2.3 混合
2.3.1获取列子集
使用loc获取列子集
subset=df.loc[:,['year','pop']]
print(subset.head())
#使用iloc获取列子集
#iloc支持使用整数
#-1用于选取最后一列
subset=df.iloc[:,[2,4,-1]]
print(subset.head())
2.3.2通过范围选择列子集
#获取0-4的整数
small_range=list(range(5))
print(small_range)
#使用range取dataframe子集
subset=df.iloc[:,small_range]
print(subset.head())
#获取3-5的整数(包含3和5)
small_range=list(range(3,6))
print(small_range)
subset=df.iloc[:,small_range]
print(subset)
#获取0-6的偶数
small_range=list(range(0,6,2))
subset=df.iloc[:,small_range]
print(subset.head())
2.3.3使用切片语法获取列子集
#使用切片语法获取前3列
subset=df.iloc[:,:3]
print(subset.head())
#获取第三列至第五列
subset=df.iloc[:,3:6]
print(subset.head())
#获取第0列,第2列和第四列
subset=df.iloc[:,0:6:2]
print(subset.head())
2.3.4获取行和列的子集
#使用loc
print(df.loc[42,'country'])
#使用iloc
print(df.iloc[42,0])
2.3.5获取多行和多列
#获取第一行,第100行和第1000行
#获取的列是country,lifeexp,gdppercap
print(df.loc[[0,99,999],['country','lifeExp','gdpPercap']])
print(df.loc[10:13],[['country','lifeExp','gdpPercap']])
2.4分组和聚合计算
2.4.1分组方式
multi_group_var=df.groupby(['year','continent'])['lifeExp','gdpPercap'].mean()
print(multi_group_var)
#想平铺dataframe,可以使用reset_index方法
flat=multi_group_var.reset_index()
print(flat)
2.4.2 分组频率计数
print(df.groupby('continent')['country'].nunique())
print(df.groupby('continent')['country'].value_counts())
2.5基本绘图
global_yearly_life=df.groupby('year')['lifeExp'].mean()
print(global_yearly_life)
global_yearly_life.plot()