1. 程式人生 > >數據分析學習筆記2-----pandas

數據分析學習筆記2-----pandas

ear 序列 解釋 它的 轉換 嵌套 class 不同的 而不是

要使用pandas,你首先就得熟悉它的兩個主要數據結構:Series和DataFrame。

1.Series

Series是一種類似於一維數組的對象,它由一組數據(各種NumPy數據類型)以及一組與之相關的數據標簽(即索引)組成

In [11]: obj = pd.Series([4, 7, -5, 3])

In [12]: obj
Out[12]: 
0    4
1    7
2   -5
3    3
dtype: int64
In [15]: obj2 = pd.Series([4, 7, -5, 3], index=[d, b, a, c])

In [16]: obj2
Out[
16]: d 4 b 7 a -5 c 3 dtype: int64 In [17]: obj2.index Out[17]: Index([d, b, a, c], dtype=object)

2.DataFrame

DataFrame是一個表格型的數據結構,它含有一組有序的列,每列可以是不同的值類型(數值、字符串、布爾值等)。DataFrame既有行索引也有列索引,它可以被看做由Series組成的字典(共用同一個索引)。DataFrame中的數據是以一個或多個二維塊存放的(而不是列表、字典或別的一維數據結構)。

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]} frame = pd.DataFrame(data) In [45]: frame Out[45]: pop state year 0 1.5 Ohio 2000 1 1.7 Ohio 2001 2 3.6 Ohio 2002 3 2.4 Nevada 2001 4 2.9 Nevada 2002 5 3.2 Nevada 2003

如果指定了列序列,則DataFrame的列就會按照指定順序進行排列.

In [47]: pd.DataFrame(data, columns=[year, state, pop])
Out[47]: 
   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

如果嵌套字典傳給DataFrame,pandas就會被解釋為:外層字典的鍵作為列,內層鍵則作為行索引

In [66]: frame3 = pd.DataFrame(pop)

In [67]: frame3
Out[67]: 
      Nevada  Ohio
2000     NaN   1.5
2001     2.4   1.7
2002     2.9   3.6

索引對象

pandas的索引對象負責管理軸標簽和其他元數據(比如軸名稱等)。構建Series或DataFrame時,所用到的任何數組或其他序列的標簽都會被轉換成一個Index。

In [76]: obj = pd.Series(range(3), index=[a, b, c])

In [77]: index = obj.index

In [78]: index
Out[78]: Index([a, b, c], dtype=object)

In [79]: index[1:]
Out[79]: Index([b, c], dtype=object)

數據分析學習筆記2-----pandas