pandas dataframe 基础知识(python数据分析活用pandas库)

本文介绍了如何使用Pandas库进行数据操作,包括加载数据集、查看列、行和单元格,以及通过loc和iloc选择行,通过切片和范围选择列。此外,还讲解了如何进行分组和聚合计算,以及基本的绘图方法,如绘制年份对应的平均生命期望。
摘要由CSDN通过智能技术生成

目录

 1.加载数据集

2.查看列,行和单元格

 2.1获取列子集

2.2获取行子集

2.2.1通过索引标签获取行子集:loc

2.2.2  通过行号获取行:iloc

2.3 混合

2.3.1获取列子集

2.3.2通过范围选择列子集

2.3.3使用切片语法获取列子集

2.3.4获取行和列的子集

2.3.5获取多行和多列 

2.4分组和聚合计算

 2.4.1分组方式 

2.4.2 分组频率计数 

2.5基本绘图 


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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值