DataFrame可以说是pandas的核心,如果熟悉DataFrame对象的各种操作,可以说已经学会了pandas.
DataFrame表示的是矩阵的数据表,有点像数据库中的表,它包含已排序的列集合,每一列可以是不同的数据类型。DataFrame既有行索引也有列索引 ,DataFrame一般是二维的,但是可以通过分层索引来展现更高维度的数据。
有多种方式可以构建DataFrame,其中最常用的方式是利用包含等长度列表或 Numpy数组的字典来形成DataFrame:
In [66]: data = {'state':['Ohio','Ohio','Ohio','Nevada','Nevada','Nevada'],
...: 'year': [2000,2001,2002,2001,2002,2003],
...: 'pop': [1.5,1.7,3.6,2.4,2.9,3.2]}
In [67]: frame = pd.DataFrame(data)
In [68]: frame
Out[68]:
state year pop
0 Ohio 2000 1.5
1 Ohio 2001 1.7
2 Ohio 2002 3.6
3 Nevada 2001 2.4
4 Nevada 2002 2.9
5 Nevada 2003 3.2
可以使用frame.head()方法预览数据的前几行,默认是前5行:
In [69]: frame.head()
Out[69]:
state year pop
0 Ohio 2000 1.5
1 Ohio 2001 1.7
2 Ohio 2002 3.6
3 Nevada 2001 2.4
4 Nevada 2002 2.9
可以用以下方式,指定列顺序:
In [70]: pd.DataFrame(data, columns=['year','state','pop'])
Out[70]:
year state pop
0 2000 Ohio 1.5
1 2001 Ohio 1.7
2 2002 Ohio 3.6
3 2001 Nevada 2.4
4 2002 Nevada 2.9
5 2003 Nevada 3.2
如果传的列不在字典中,将会在结果中显示缺失值。
In [72]: frame2 = pd.DataFrame(data, columns=['year','state','pop','dept'],
...: index=['one','two','three','four','five','six'])
In [73]: frame2
Out[73]:
year state pop dept
one 2000 Ohio 1.5 NaN
two 2001 Ohio 1.7 NaN
three 2002 Ohio 3.6 NaN
four 2001 Nevada 2.4 NaN
five 2002 Nevada 2.9 NaN
six 2003 Nevada 3.2 NaN
In [75]: frame2.columns
Out[75]: Index(['year', 'state', 'pop', 'dept'], dtype='object')