pandas 為什麼學習pandas numpy已經可以幫助我們進行數據的處理了,那麼學習pandas的目的是什麼呢? numpy能夠幫助我們處理的是數值型的數據,當然在數據分析中除了數值型的數據還有好多其他類型的數據(字元串,時間序列),那麼pandas就可以幫我們很好的處理除了數值型的其他數據! ...
pandas
為什麼學習pandas
- numpy已經可以幫助我們進行數據的處理了,那麼學習pandas的目的是什麼呢?
- numpy能夠幫助我們處理的是數值型的數據,當然在數據分析中除了數值型的數據還有好多其他類型的數據(字元串,時間序列),那麼pandas就可以幫我們很好的處理除了數值型的其他數據!
什麼是pandas?
- 首先先來認識pandas中的兩個常用的類
- Series
- DataFrame
Series
-
Series是一種類似與一維數組的對象,由下麵兩個部分組成:
- values:一組數據(ndarray類型)
- index:相關的數據索引標簽
-
Series的創建
- 由列表或numpy數組創建
- 由字典創建
from pandas import Series
s = Series(data=[127,2,3,'regina'])
為什麼需要有顯示索引?
答:顯示索引可以增強Series 的可讀性
還可以直接引入字典:
Series的索引和切片
s[0] --> regina
s.姓名 --> regina
s[0:2] -->
姓名 regina
年齡 23
dtype: object
- Series的常用屬性
- shape
- size
- index 返回索引
- values 返回值
s.shape
s.size
s.index #返回索引
s.values #返回值
s.dtype #元素的類型
-
Series的常用方法
-
head(),tail()
這裡的head和tail預設是5,tail顯示最後n個數據
-
unique() 去重
-
isnull(),notnull()
-
add() sub() mul() div()
只有索引一致的數據才可以相加
同時也只有數據類型一樣的才能相加
-
DataFrame
-
DataFrame是一個【表格型】的數據結構。DataFrame由按一定順序排列的多列數據組成。設計初衷是將Series的使用場景從一維拓展到多維。DataFrame既有行索引,也有列索引。
- 行索引:index
- 列索引:columns
- 值:values
-
DataFrame的創建
-
ndarray創建
-
字典創建
-
-
DataFrame的屬性
- values、columns、index、shape
============================================
練習:
根據以下考試成績表,創建一個DataFrame,命名為df:
regina ivanlee 語文 150 0 數學 150 0 英語 150 0 理綜 300 0
============================================
-
DataFrame索引操作
df = DataFrame(data=np.random.randint(60,100,size=(5,5)),columns=['A','B','C','D','E'],index=[1,2,3,4,5])
-
對行進行索引
-
iloc: 通過隱式索引取行 (不根據所定義的index取值)
取單個元素:
df.iloc[,]
-
loc: 通過顯示索引取行
-
-
隊列進行索引
df['A']
#取單列,如果df有顯示的索引,通過索引機制去行或者列的時候只可以使用顯示索引 -
對元素進行索引
取多個元素:
-
-
DataFrame的切片操作
- 對行進行切片
- 對列進行切片
-
df索引和切片操作
-
索引:
- df[col]:取列
- df.loc[index]:取行
- df.iloc[index,col]:取元素
-
切片:
-
df[index1:index3]:切行
-
df.iloc[:,col1:col3]:切列
-
-
DataFrame的計算與Series一致
-
時間數據類型的轉換
-
pd.to_datetime(col)
dic = { 'time':['2010-10-10','2011-11-20','2020-01-10'], 'temp':[33,31,30] } df = DataFrame(data=dic) df['time'].dtype = 'O' import pandas as pd #將time列的數據類型轉換成時間序列類型 df['time'] = pd.to_datetime(df['time']) df['time']
-
-
將某一列設置為行索引
-
df.set_index()
上圖中的索引是隱式索引的012,如果要將time列作為行索引
#將time列作為源數據的行索引 df.set_index('time',inplace=True)
-
本文來自博客園,作者:ivanlee717,轉載請註明原文鏈接:https://www.cnblogs.com/ivanlee717/p/16987592.html