如果将 Series 类比为带灵活索引的一维数组,那么 DataFrame 就可以看作是一种既有灵活的行索引,又有灵活列名的二维数组。就像你可以把二维数组看成是有序排列的一维数组一样,你也可以把 DataFrame 看成是有序排列的若干 Series 对象。这里的“排列”指的是它们拥有共同的索引。
下面创建一个新的 Series 来进行演示:
area_dict = {'California': 423967, 'Texas': 695662, 'New York': 141297, 'Florida': 170312, 'Illinois': 149995}
area = pd.Series(area_dict)
area
输出如下所示:
California 423967
Florida 170312
Illinois 149995
New York 141297
Texas 695662
dtype: int64
再结合之前创建的 population 的 Series 对象,用一个字典创建一个包含这些信息的二维对象:
states = pd.DataFrame({'population': population, 'area': area})
states
输出如下所示:
area population
California 423967 38332521
Florida 170312 19552860
Illinois 149995 12882135
New York 141297 19651127
Texas 695662 26448193
和 Series 对象一样,DataFrame 也有一个 index 属性可以获取索引标签:
states.index
输出如下所示:
Index(['California', 'Florida', 'Illinois', 'New York', 'Texas'], dtype='object')
另外,DataFrame 还有一个 columns 属性,是存放列标签的 Index 对象:
states.columns
输出如下所示:
Index(['area', 'population'], dtype='object')
因此 DataFrame 可以看作一种通用的 NumPy 二维数组,它的行与列都可以通过索引获取。