DataFrame
DataFrame是什么
(有行有列的数据就是df)
- Dataframe简称df、或df数据集
- df = pd.read_csv(’…/xxx.csv’)`返回的是dataframe对象
- dataframe对象是一种特殊的数据结构,和excel中的表格、mysql中的表类似,有行有列
- spark中也有dataframe这种数据结构,二者在如何组织数据这一层面上来说,完全相同
DataFrame的常用API
API:指各种属性、方法、函数;调用他们能够得到我们想要的东西(对象)
- print(df) 展示全部表数据
- df.head(n) 展示n行数据,默认展示5行
- df.shape 获取行列数量
- df.info() 以列为维度,获取数据表的整体统计情况
1 每列有多少数据
2 每列数据是什么样的数据类型,是小数还是整数等待
3 每列数据中是否存在空值
DataFrame局部数据的API(取数)
loc 和iloc(重要)
功能:
- 按行取数据
- 按列取数据
- 按范围取数据
区别:
- loc是根据索引值取数据
- iloc是根据索引序号取数据
df.loc和df.iloc取1行或多行数据
df.loc[索引值]
:通过行索引的值获取指定一行的数据df.loc[[索引值1, 索引值2, 索引值3, ...]]
通过行索引的值获取指定多行的数据df.iloc[索引序号]
:通过索引序号获取指定的一行数据df.iloc[[索引序号1, 索引序号2, 索引序号3, ...]]
通过行索引 的值获取指定多行的数据df.iloc[索引序号1:索引序号6]
返回索引序号1到索引序号5的多行数据;- 特别注意:遵循下标范围的左包右闭原则(包含左边,不包含右边
df.loc和df.iloc取1列或几列数据
df.loc[:, ['列名1', '列名2', ...]]
冒号表示全部行df.iloc[:, ['列序号1', '列序号2', ...]]
df.loc和df.iloc取范围数据 (几行几列)
df.loc[[行索引值1, 行索引值2,......],['列名1','列名2',.....]]
df.iloc[[行索引号1,行索引号2,...],['序列号1','序列号2',...]]
df.iloc[行索引号m:行索引号n,列序号x:列序号y]
遵循 左包右闭,获取第m行到第n-1行,第x列到第y-1列的数据
获取全部行号以及列号
[i for i in range(df.shape[0])]
返回行号组成的列表[i for i in range(df.shape[1])]
df.head 和 df.tail
- 都返回的是dataframe对象 ,表中局部的表
- df.head(n) 从前边拿n行数据,n默认为5
- df.tail(m) 从最后倒着拿m行数据,m默认也为5
- n和m都是索引
根据列名查看一列或多列数据
- 根据列名查看一列数据
df[['列名']] # 返回df对象
df['列名'] # 返回series对象
- 根据列名查看多列数据
df[['列名1','列名2','列名3', ...]] # 返回df对象