【DataFrame】创建 dataframe

1 简介

DataFrame 是 Python 中 Pandas 库中的一种数据结构,它类似 excel,是一种二维表

或许说它可能有点像 matlab 的矩阵,但是 matlab 的矩阵只能放数值型值(当然 matlab 也可以用 cell 存放多类型数据),DataFrame 的单元格可以存放数值、字符串等,这和 excel 表很像。

同时 DataFrame 可以设置列名columns与行名index,可以通过像 matlab 一样通过位置获取数据也可以通过列名和行名定位,具体方法在后面细说。

2 创建 DataFrame

首先声明一下,以下都是使用的 Python 3.6 版本为例

在所有操作之前当然要先 import 必要的 pandas 库,因为 pandas 常与 numpy 一起配合使用,所以也一起 import 吧。

import pandas as pd
import numpy as np

如果还没安装直接在 cmd 里 pip 安装吧。

pip install pandas
pip install numpy

2.1 直接创建

可以直接使用 pandas 的DataFrame 函数创建,比如接下来我们随机创建一个 4*4 的 DataFrame。

df1 = pd.DataFrame(np.random.randn(4,4), index=list('ABCD'), columns=list('ABCD'))

其中第一个参数是存放在 DataFrame 里的数据,第二个参数 index 就是之前说的行名(或者应该叫索引?),第三个参数 columns 是之前说的列名。

后两个参数可以使用 list 输入,但是注意,这个 list 的长度要和 DataFrame 的大小匹配,不然会报错。当然,这两个参数是可选的,你可以选择不设置。

而且发现,这两个 list 是可以一样的,但是每行每列的名字在 index 或 columns 里要是唯一的。

使用 python 自己的 shell 展示创建的结果是这样的:

>>> df1 = pd.DataFrame(np.random.randn(4,4), index=list('ABCD'), columns=list('ABCD'))
>>> df1
          A         B         C         D
A  1.534538 -0.457642 -0.177800 -0.721894
B -0.641673 -0.033828 -0.008813 -0.260790
C -0.058381 -0.492103  0.579269  0.476031
D -0.442216 -1.541925 -0.198197  0.946656
>>>

当然,如果你的数据量贼小,也可以自己输入创建,类似这样。

>>> df2 = pd.DataFrame([[1,2,3,4], [2,3,4,5], [3,4,5,6], [4,5,6,7]], index=list('ABCD'), columns=list('ABCD'))
>>> df2
   A  B  C  D
A  1  2  3  4
B  2  3  4  5
C  3  4  5  6
D  4  5  6  7
>>>

2.2 使用字典创建

仍然是使用 DataFrame 这个函数,但是字典的每个 key 的 value 代表一列,而 key 是这一列的列名。比如这样。

>>> dic1 = {'name': ['小明', '小红', '狗蛋', '铁柱'], 'age': [17, 20, 5, 40], 'gender': ['男', '女', '女', '男']}
>>> df3 = pd.DataFrame(dic1)
>>> df3
  name  age gender
0   小明   17      男
1   小红   20      女
2   狗蛋    5      女
3   铁柱   40      男
>>>