学习目标3
昨天,我们学习了Series。
而Pandas的另一种数据类型:DataFrame,在许多特性上和Series有相似之处。
今天,我们将学习DataFrame的相关知识:
-
DataFrame的概念
-
构造一个DataFrame
-
DataFrame的常用属性
-
DataFrame的轴
DataFrame
DataFrame
数据框
|----------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|
| 定义 DataFrame,中文叫数据框。 是pandas模块最常用的数据类型,是一个二维的矩阵数据表。 非常便捷地存放数据。 | 隐喻 DataFrame,就像是一个表格,可以通过行和列,可以定位一个值。 |
|-----------------------------------------------------------------------|----------------------------------------------------------------------------|
| 那DataFrame和Series之间有什么关系呢? 在某种程度上,可认为DataFrame是"具有相同index的Series的集合"。 | |
|-----------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|
| 右侧是一个DataFrame,它由3部分组成: 既有行索引(index),可以用来定位到具体的某一行。 | 也有列索引(columns),用来定位到具体的某一列。 通过index和columns,可以定位到一个值,能快速进行数据的筛选和定位。 |
因此,DataFrame的同一列中,值的数据类型相同。
但是,列和列之间的数据类型可以不同。
同样的,和Series类似,DataFrame的行索引index是可以选择性定义的。如果没有定义index,index就会默认从0开始生成。
总结:
|----------------------------------------------------------------------------|
| DataFrame |
| DataFrame,中文叫做数据框,是pandas模块最常用的数据类型,是一个二维的矩阵数据表。 |
| |
|---------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| DataFrame构造函数 这几行代码,构造了一个DataFrame。 第1行,导入pandas模块。 第3行,定义了一个字典。 第4行,定义了一个列表。 第6行,使用DataFrame构造函数创建了一个DataFrame,并赋值给了变量df。 第8行,将这个创建的DataFrame输出。 | import pandas as pd data= {'rank':[1, 2, 3, 4],'GDP':[80855, 77388, 68024, 47251]} city= ['GD','JS','SD','ZJ'] df= pd.DataFrame(data, index=city) print(df) |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| pd.DataFrame( ) 通过调用的pandas模块里的DataFrame()函数,可以构造一个DataFrame。 | import pandas as pd data= {'rank':[1, 2, 3, 4],'GDP':[80855, 77388, 68024, 47251]} city= ['GD','JS','SD','ZJ'] df= pd.DataFrame(data, index=city) print(df) |
| 第一个常用参数:data pd.DataFrame()中,参数data表示需要传入的数据,可以是字典,列表等。 示例中data是一个字典,传入pd.DataFrame()函数; 字典的keys,会成为DataFrame的列索引columns; 字典的values是列表,列表中的值,会成为DataFrame的值values。 注意:若不传入数据,会生成一个空的DataFrame。 | import pandas as pd data= {'rank':[1, 2, 3, 4],'GDP':[80855, 77388, 68024, 47251]} city= ['GD','JS','SD','ZJ'] df= pd.DataFrame(data, index=city) print(df) |
需要特别注意的是,在构造DataFrame时,传入的字典必须是右侧所示的结构:
字典的keys是对象;
字典的values是对应的列表,并且每个列表中的元素个数相同。
|---------|---------------------------------------------------------------------------------------------------------------------------------------------------|
| 在构造过程中: | 字典中的keys,就成为了DataFrame中的列索引columns。 字典中的values,就成为了DataFrame中的值values。 |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 第二个常用参数:index 参数index用于定义DataFrame的行索引(index)。 只需要将一个列表赋值给参数index。 示例中,我们将定义的列表city赋值给参数index。 city中的值,会成为DataFrame的index。 若不传入参数index,那么生成的DataFrame的index就会默认从0开始生成。 | import pandas as pd data = {'rank':[1, 2, 3, 4],'GDP':[80855, 77388, 68024, 47251]} city = ['GD','JS','SD','ZJ'] df = pd.DataFrame(data, index=city) print(df) |
| 赋值的变量 将pd.DataFrame()函数创建的DataFrame,赋值给了df这个变量。 将df输出可以看到,它是一个DataFrame对象: 列索引(columns)是由字典data的的keys组成; 值(values)是由字典data的的值组成; 行索引(index)是由列表city的值组成。 | import pandas as pd data = {'rank':[1, 2, 3, 4],'GDP':[80855, 77388, 68024, 47251]} city = ['GD','JS','SD','ZJ'] df = pd.DataFrame(data, index=city) print(df) |
总结: