官术网_书友最值得收藏!

3.2.1 數據結構概述

1.Series

Series與NumPy中的一維數組array類似,與Python的基本數據結構list也很相近,區別在于list中的元素可以是不同的數據類型,而Series中只允許存儲相同的數據類型。

下面嘗試創建一個簡單的Series,并分析其特點。


In [13]: s = pd.Series([1,2,3,np.nan,5])

In [14]: s
Out[14]:
0    1.0
1    2.0
2    3.0
3    NaN
4    5.0
dtype: float64

Series中的每個數據對應一個索引值,在默認情況下,索引都是從0開始的整數。不過,我們也可以自定義索引:


In [15]: s2 = pd.Series([1,2,3,np.nan,5],index =[100,101,102,103,104])

In [16]: s2
Out[16]:
100    1.0
101    2.0
102    3.0
103    NaN
104    5.0
dtype: float64

可以通過以下兩個屬性依次顯示Series對象的索引和值。


In [19]: s2.index
Out[19]: Int64Index([100, 101, 102, 103, 104], dtype='int64')

In [20]: s2.values
Out[20]: array([ 1.,  2.,  3., nan,  5.])

2.DataFrame

DataFrame提供的是一個類似表的結構,可以將其看作由多個Series組成的數據框,它的列名稱為columns,行名稱為index,而表中間的就是數據值。

下面看一個用字典創建DataFrame的例子。


In [21]: df1 = pd.DataFrame({'ID':pd.Series([1,2,3,4,5,6]),
    ...:              'Age':pd.Series([18,50,32,22,16,25])} )

In [22]: df1
Out[22]:
   Age  ID
0   18   1
1   50   2
2   32   3
3   22   4
4   16   5
5   25   6

現在嘗試獲取列,若只想獲取其中的某一列,返回的就是一個Series,若想同時獲取多列,返回的就是一個DataFrame。


In [23]: df1['ID']
Out[23]:
0    1
1    2
2    3
3    4
4    5
5    6
Name: ID, dtype: int64

In [24]: df1[['ID','Age']]
Out[24]:
   ID  Age
0   1   18
1   2   50
2   3   32
3   4   22
4   5   16
5   6   25

如果想在前面的基礎上新增一些列,在DataFrame中也可以輕松實現。


In [25]: df1['Sex'] = ['F','M','M','F','M','F']

In [26]: df1
Out[26]:
   Age  ID Sex
0   18   1   F
1   50   2   M
2   32   3   M
3   22   4   F
4   16   5   M
5   25   6   F

同樣,如果我們想要刪除列,直接使用DataFrame中的drop函數即可,但需要用axis=1來表示刪除列,否則默認是刪除行。


In [27]: df1.drop('Sex',axis=1)
Out[27]:
   Age  ID
0   18   1
1   50   2
2   32   3
3   22   4
4   16   5
5   25   6

另外,我們還可以使用loc函數進行一些查詢行內容的操作。


In [28]: df1.loc[3]
Out[28]:
Age    22
ID      4
Sex     F
Name: 3, dtype: object

以上是對Pandas中兩種常用數據結構Series和DataFrame的簡單介紹,接下來我們將正式介紹Pandas常用功能。

主站蜘蛛池模板: 剑河县| 固阳县| 松原市| 博爱县| 江津市| 抚顺市| 泽库县| 长阳| 芜湖县| 宝鸡市| 宜州市| 繁昌县| 辽源市| 巴林右旗| 思南县| 兴山县| 息烽县| 高安市| 白河县| 桦南县| 江津市| 五寨县| 博白县| 巍山| 宜君县| 扬中市| 双峰县| 茶陵县| 镇坪县| 大洼县| 时尚| 永善县| 彩票| 西盟| 全南县| 祥云县| 抚松县| 海淀区| 尼玛县| 双鸭山市| 鄄城县|