iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 10
0

DataFrame和Series除了前一天教的功能外,還有其他幾個運用,像是Python本身的應用、NumPy、lambda等等。


DataFrame

  • Python本身運用:
    • 針對dict/list:
cities = pd.DataFrame({ 'City name': city_names, 'Population': population })
print(type(cities['City name'][1]))
cities['City name'][1]

結果會是:

<class 'str'>
'San Jose'

同樣的例子,加上:

print(type(cities[0:2]))
cities[0:2]

就會變成:
<class 'pandas.core.frame.DataFrame'>

# City name Population
0 San Francisco 852469
1 San Jose 1015785

是不是跟Python平常處理list的狀況很類似呢?因為他是python底下的程式,所以如果需要一些資料的處理,可以直接使用python的功能,就把DataFrame視為diclist吧!
當然pandas是一個厲害的套件,所以更多的運用可以參考更多API的功能吧!

Series

  • Python本身的功能:
    可以針對Series,進行Python的基本運算。像是「加減成除」等四則運算。
    我們使用先前的範例,也就是population來進行四則運算:
population = pd.Series([852469, 1015785, 485199])
a = population + 10000
b = population - 10000
c = population * 1000
d = population / 1000.

print(a)
print(b)
print(c)
print(d)

結果是:

0     862469
1    1025785
2     495199
dtype: int64
0     842469
1    1005785
2     475199
dtype: int64
0     852469000
1    1015785000
2     485199000
dtype: int64
0     852.469
1    1015.785
2     485.199
dtype: float64

是不是很厲害呢!不用逐一拿出來計算,直接用公式套進每個數字,讓數字整批的作業,這個概念跟進行資料庫欄位的作法相同。

  • NumPy功能: NumPy 是一種進行科學計算常用的套件。pandasSeries 可用作大多數的NumPy內的功能,[Day05]聊聊重要的三個package吧!
    也提到「Numpy具備平行處理的能力,可以將操作動作一次套用在大型陣列上,幫助我們做更多方法建立多維數據以及矩陣運算,像是Pandas就是建立在Numpy的基礎延伸的套件」

同樣的population,只要引入numpy就可以用

import numpy as np

np.log(population)

結果:

0    13.655892
1    13.831172
2    13.092314
dtype: float64

更多功能直接參考網站吧!

  • lambda功能:
    如同Python中的映射函数Series.apply 也可以參數公式的形式使用 lambda 函数
    直接看範例比較快:
population.apply(lambda val: val > 1000000)

結果:

0    False
1     True
2    False
dtype: bool

是不是跟一般使用的lambda一樣呢!(如果不熟悉lambda的話,趕快去惡補一下)

以上為簡單的說明,更多運用要參考文件。


睫毛之聲:
pandas套件不僅僅儲存資料結構而已,還有本身的各種運用,再結合python的運算,可以讓資料產生更多的變化,跟直接在資料庫處理數據相仿,功能十分強大。


上一篇
【Day9】2rd:Colab-Pandas範例
下一篇
【Day11】2rd:TensorFlow初步學習-線性回歸(linear regression)
系列文
Machine Learning(by Google)30

尚未有邦友留言

立即登入留言