查看数据类型及属性
# 查看df类型
type(df)
# 查看df的shape属性,可以获取DataFrame的行数,列数
df.shape
# 查看df的columns属性,获取DataFrame中的列名
df.columns
# 查看df的dtypes属性,获取每一列的数据类型
df.dtypes
df.info()
Pandas与Python常用数据类型对照
加载筛选数据
df根据列名加载部分列数据:加载一列数据,通过df['列名']方式获取,加载多列数据,通过df[['列名1','列名2',...]]。
df按行加载部分数据:先打印前5行数据 观察第一列 print(df.head()) 最左边一列是行号,也就是DataFrame的行索引 Pandas默认使用行号作为行索引。
loc方法传入行索引,来获取DataFrame的部分数据(一行,或多行)
df.loc[0]
df.loc[99]
df.loc[last_row_index]
iloc : 通过行号获取行数据
iloc传入的是索引的序号,loc是索引的标签
使用iloc时可以传入-1来获取最后一行数据,使用loc的时候不行
loc和iloc属性既可以用于获取列数据,也可以用于获取行数据
df.loc[[行],[列]]
df.iloc[[行],[列]]
df.loc[:,['country','year','pop']]
# 获取全部的行,但每一行的列内容接受三个
df.iloc[:,[0,2,4,-1]]
df.loc[:,[0,2,4,-1]]
df.iloc[:,0:6:2] # 所有行, 第0 , 第2 第4列
可以通过行和列获取某几个格的元素
分组和聚合运算
先将数据分组 对每组的数据再去进行统计计算如,求平均,求每组数据条目数(频数)等 再将每一组计算的结果合并起来 可以使用DataFrame的groupby方法完成分组/聚合计算
df.groupby(by='year')[['lifeExp','pop','gdpPercap']].mean()
# 根据year分组,查看每年的life平均值,pop平均值和gpd平均值,用mean做聚合运算
也可以根据两个列分组,形成二维数据聚合
df.groupby(['continent'])['country'].nunique()
df.groupby('continent')['lifeExp'].max()
# 可以使用 nunique 方法 计算Pandas Series的唯一值计数
# 可以使用 value_counts 方法来获取Pandas Series 的频数统计
df.groupby(‘continent’) → dataframeGroupby对象就是把continent取值相同的数据放到一组中
df.groupby(‘continent’)[字段] → seriesGroupby对象 从分号组的Dataframe数据中筛序出一列
df.groupby(‘continent’)[字段].mean() seriesGroupby对象再调用mean()/其它聚合函数