Pandas 创建DataFrame,Pandas 数据帧(DataFrame)是二维数据结构,它包含一组有序的列,每列可以是不同的数据类型,DataFrame
既有行索引,也有列索引,它可以看作是Series
组成的字典,不过这些Series
共用一个索引。
数据帧(DataFrame)的功能特点:
- 不同的列可以是不同的数据类型
- 大小可变
- 含行索引和列索引
- 可以对行和列执行算术运算
假设要创建一个包含学生信息的DataFrame,如下图所示:
DataFrame 结构体
pandas中的DataFrame
可以使用以下构造函数创建:
构造函数的参数说明如下:
参数 | 说明 |
---|---|
data |
支持多种数据类型,如:ndarray ,series ,map ,lists ,dict ,constant 和另一个DataFrame 。 |
index |
行标签,如果没有传递索引值,默认值为np.arrange(n) |
columns |
列标签,如果没有传递索引值,默认值为np.arrange(n) |
dtype |
每列的数据类型。 |
copy |
是否复制数据,默认值为False |
Pandas数据帧(DataFrame)支持多种输入类型来创建
- 列表(list)
- 字典(dict)
- 系列(series)
- Numpy ndarrays
- 其他数据帧(DataFrame)
下面介绍如何创建数据帧(DataFrame)。
创建一个空的 DataFrame
执行结果如下:
从列表创建 DataFrame
可以使用单个列表或二维列表创建数据帧(DataFrame)。
例1:单个列表创建DataFrame
执行结果如下:
例2:二维列表创建DataFrame
执行结果如下:
例3:二维列表创建DataFrame,并指定dtype
执行结果如下:
注: 可以观察到,
dtype
参数将Age
列的类型更改为浮点。
从 ndarrays/Lists 的字典来创建 DataFrame
所有的ndarrays
必须具有相同的长度。如果传递了索引(index
),则索引的长度应等于数组的长度。
如果没有传递索引,则默认情况下,索引为range(n)
,其中n
为数组长度。
执行结果如下:
注:观察值
0
,1
,2
,3
,它们是分配给每个使用函数range(n)
的默认索引。
使用列表作为索引,创建一个数据帧(DataFrame)。
执行结果如下:
注:
index
参数为每行分配一个索引。
从字典列表创建 DataFrame
字典列表
可作为输入数据用来创建数据帧(DataFrame),字典键默认为列名。
例1:传递字典列表来创建数据帧(DataFrame)。
执行结果如下:
注:观察到,使用
NaN
填写空白区域
例2:传递字典列表和行索引来创建数据帧(DataFrame)。
执行结果如下:
例3:以下示例显示如何使用字典,行索引和列索引列表创建数据帧(DataFrame)。
执行结果如下:
注:
df1
是使用列索引创建的,与字典键相同
df2
使用字典键以外的列索引创建DataFrame
,使用NaN
填写空白区域
从 Series 字典来创建 DataFrame
通过传递 Series 字典来创建DataFrame,最终索引是两个Series索引的并集。
执行结果如下:
注:对于第一个
Series
,观察到没有包含索引'd'
,输出结果中,对应索引d
区域,填写NaN。