python数据包pandas_python_pandas学习
numPy
pandas的數據結構介紹
簡介
Pandas [1] 是python的一個數據分析包,最初由AQR Capital Management于2008年4月開發,并于2009年底開源出來,目前由專注于Python數據包開發的PyData開發team繼續開發和維護,屬于PyData項目的一部分。Pandas最初被作為金融數據分析工具而開發出來,因此,pandas為時間序列分析提供了很好的支持。 Pandas的名稱來自于面板數據(panel data)和python數據分析(data analysis)。panel data是經濟學中關于多維數據集的一個術語,在Pandas中也提供了panel的數據類型。
數據結構
Series:一維數組,與Numpy中的一維array類似。二者與Python基本的數據結構List也很相近,其區別是:List中的元素可以是不同的數據類型,而Array和Series中則只允許存儲相同的數據類型,這樣可以更有效的使用內存,提高運算效率。
Time- Series:以時間為索引的Series。
DataFrame:二維的表格型數據結構。很多功能與R中的data.frame類似??梢詫ataFrame理解為Series的容器。以下的內容主要以DataFrame為主。
Panel :三維的數組,可以理解為DataFrame的容器。
終端輸入
Jupyter Notebook
導入相關模塊
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
Series
Series是一種類似于一維數組的對象,它由一組數據(各種NumPy數據類型)以及一組與之相關的數據標簽(即索引)組成。
實質上是創建了一個 Series 對象,這也就說明了為什么會有index和values.
Series自定義索引
Series自定義索引的另一種方法
在這里就引入另一個概念“自動對齊”。自定義的索引會自動去尋找原來的索引,如果一樣的,就取出原來索引對應的值。
在 Pandas 中,如果沒有值,都對齊賦給 NaN。
當然上面的代碼也可以寫成這樣
Series判斷值是否為空
DataFrame
一個Datarame表示一個表格,類似電子表格的數據結構,包含一個經過排序的列表集,它們沒一個都可以有不同的類型值(數字,字符串,布爾等等)。Datarame有行和列的索引;它可以被看作是一個Series的字典(每個Series共享一個索引)。
構建DataFrame最常用的方法——直接傳入一個由等長列表或NumPy數組組成的字典
如果指定了列序列,則DataFrame的列就會按照指定的順序進行排列
如果傳入的列在數據中找不到,就會產生NAN值
通過行、列進行獲取
通過類似字典標記的方式或屬性的方式,可以將DataFream的列獲取為一個Series:
同理行也可以通過位置或名稱的方式進行獲取
基本功能
重新索引
Series的reindex將會根據新索引進行,如果某個索引值當前不存在,就引入缺失值
reindex的method選項
ffill或pad 向前填充值
bfill或backfill 向后填充值
對于DataFrame,reindex可以修改行、列或者兩個都可以修改。如果僅傳入一個序列,則會重新索引行
reindex函數的參數
參數
說明
index
用作索引的新序列。既可以是index實例,也可以是其他序列型python數據結構
method
插值方式
fill_value
在重新索引過程中,需要引入缺失值時使用的代替值
limit
前向或后向填充時的最大填充量
level
在Multilndex的指定級別上匹配簡單索引,否則選取其子集
copy
默認為true,無論如何都復制;如果為false,則新舊相等就不復制
索引、選取和過濾
類型
說明
obj[val]
選取DataFrame的單個列或一組列。在一些特殊的情況下會比較便利:布爾型數組(過濾行)
obj.ix[val]
選取DataFrame的單個行或一組行
obj.ix[:,val]
選取單個列或列子集
obj.ix[val1,val2]
同時選取行和列
reindex方法
將一個或多個軸匹配到新索引
xs方法
根據標簽選取單行或單列,并返回一個Series
icol、irow方法
根據整數位置選取單行或單列,并返回一個Series
get_value、set_value方法
根據行標簽或列標簽選取單個值
總結
以上是生活随笔為你收集整理的python数据包pandas_python_pandas学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 资产减值损失属于什么科目
- 下一篇: websocket python爬虫_p