本应该在2.5节讲解DataFrame表格的创建,为什么要放在本章的最后一节学习呢?原因在于之前没有讲解NumPy数组,而用数组创建DataFrame表又是非常重要的方式,因此在讲解数组之后,再系统地讲解DataFrame表格的创建。
虽然我们对DataFrame表格结构已不陌生,因为在前面的章节中已学习过通过获取外部文件数据来生成DataFrame表格,但还没尝试通过创建的方式来生成DataFrame表格。在实际的数据处理环境中,可能会经常构造DataFrame表格,所以非常有必要学习DataFrame表格的创建,创建DataFrame表格使用pd.DataFrame()函数,该函数的参数说明如下所示。
pd.DataFrame ( data=None , index=None , columns=None , dtype=None , copy=False )
data: 提供创建DataFrame表格的数据,可以为数组、列表和字典。
index: 提供DataFrame表格的行索引数据,默认为RangeIndex(0,1,2,…,n)。
columns: 提供DataFrame表格的列索引数据,默认为RangeIndex(0,1,2,…,n)。
dtype: 数据类型,只允许设置单个数据类型,如果没有设置则自动推断。
copy: 是否从输入复制数据。仅影响DataFrame/二维数组输入。
将提供的数组放置在pd.DataFrame()函数的data参数中,并且在columns参数中指定表的列索引(列标题),示例代码如下:
运行结果如图3-4所示。
图3-4 使用NumPy数组创建DataFrame表格
将提供的列表放置在pd.DataFrame()函数的data参数中,并且在columns参数中指定表的列索引(列标题),示例代码如下:
运行结果如图3-5所示。
图3-5 使用Python列表创建DataFrame表格
Python中的字典是由键值对组成的,也可以使用字典创建DataFram表格,并且创建方式更为多样化。用字典创建DataFrame表格的固定格式是:{列索引:列数据},也就是说字典的键对应DataFrame表格的列索引,值对应列数据,列数据可以是列表、数组和Series。由于字典的键是DataFrame表格的列索引,所以不需要在columns参数中指定列索引,不过可以设置index参数,这样DataFrame表格的行索引和列索引就都是自定义的了。
字典的值是列表,创建DataFrame表格时,示例代码如下:
运行结果如图3-6所示。
图3-6 字典值为列表,创建DataFrame表格
字典的值是数组,创建DataFrame表格时,示例代码如下:
运行结果如图3-7所示。
图3-7 字典值为数组,创建DataFrame表格
字典的值是Series,因为Series数据只是加了索引的数组而已,所以Series的索引就是DataFrame表格的行索引。pd.DataFrame()函数的index和columns两个参数都不用设置,也能达到自定义行索引和列索引的效果,示例代码如下:
运行结果如图3-8所示。
图3-8 字典值为Series,创建DataFrame表格