1.選取行名、列名、值

2.以标簽(行、列的名字)為索引選擇資料—— x.loc[行标簽,列标簽]
3.以位置(第幾行、第幾列)為索引選擇資料—— x.iloc[行位置,列位置]
4.同時根據标簽和位置選擇資料——x.ix[行,列]
5.選擇連續的多行多列——切片
起點索引:終點索引 這種用法叫做一個切片,指從起點索引到終點索引。看實際用法就懂了。
如果起點索引省略代表從頭開始,終點索引省略代表直到最後,都省略就代表全部了。
切片在.loc、.iloc、.ix三種方法中都可以應用
由上例可見,當以位置為索引時,切片是不包括終點的,是左閉右開的。即第1列到第3列不是寫作0:2而是0:3。
6.選擇不連續的某幾行或某幾列
備注:當以标簽名選取不連續的某幾行的時候在這個例子中如df.loc['2016-02-02','2016-02-04',:]這樣寫會出錯,,是時間格式的原因,這樣寫就可以了df.ix[[pd.Timestamp('2016-02-02'), pd.Timestamp('2016-02-04')]]
7.簡便地擷取行或列
直接用切片擷取行,直接用标簽名擷取列。注意不要錯亂。
8.如何傳回一個dataframe的單列或單行
如上,此時傳回的是一個series,而不是dataframe。有時單獨隻擷取一行的時候也會傳回一個series,如df.ix[0,:]。
若要傳回dataframe,可用中括号把索引括上,如下。
9.按條件選取資料——df[邏輯條件]
邏輯條件支援&(與)、|(或)、~(非)等邏輯運算
這個方法有個常用情景,即按條件修改資料:
02.dataframe轉置、排序
1.轉置 df.T
2.按行名或列名排序——df.sort_index
df.sort_index(axis=0,ascending=True)
axis= 0 為按行名排序;1 為按列名排序
ascending= True 為升序; False 為降序
3.按值排序——df.sort_index
df.sort(by=, ascending=True)
by= 按哪一列的值排序,預設是按行标簽排序
03.dataframe增删行或列
1.獲得一個datframe資料類型的樣例
2.增加一列或一行
3.删除行或列——df.drop
df.drop(labels,axis=0,inplace=Flase)
labels 行或列的标簽名,寫在第一個可省略。
axis= 0 删除行;1 删除列
inplace= False 生成新dataframe;True 不生成新的dataframe,替換原本dataframe。預設是False。
該操作預設傳回的是另一個新的dataframe,以至于原來的沒有變,如在下面第一個例子中删除的列,在第二個例子中還有。要替換原來的請調整inplace參數
04.連結多個dataframe
1.concat,concat([df1,df2,...],axis=0)
axis= 0 縱向;1 橫向。
使用前需導入過pandas子產品
使用時要注意連接配接的dataframe行列對齊
可以同時拼接多個dataframe
拼接是強制的,允許連接配接後存在同名的行或列,見縱向連接配接的第二個例子
2.橫向連接配接
3.縱向連接配接
05.組建dataframe
1.組建方法——pd.DataFrame
pd.DataFrame(data=None, index=None, columns=None)
data= 資料
index= 索引,即行名、行表頭
columns= 列名、清單頭
使用前要執行前面的import pandas as pd
2.用字典型資料組建——pd.DataFrame
方法基本同上,因為字典型自帶一個标簽,是以就不用寫列名了。
3.簡便地獲得聚寬資料中的時間索引
有時建立一個dataframe時,為了和平台資料保持一緻,需要使用相同的時間行索引,但時間資料操作複雜,而且涉及到節假日、非交易日等問題,直接建立比較困難,這裡介紹一種簡單的方法,快速獲得跟平台資料一緻的時間索引。原理就是直接把平台資料的時間索引拿出來。例子如下:
06.dataframe的缺失值處理
1.去掉缺失值——df.dropna
df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
axis= 0 按行檢查缺失;1 按列檢查缺失。不寫預設為0
how= 'any' 有一個缺失值就算缺失;'all' 行或列(根據axis參數)全缺失才算缺失。不寫預設為'any'
thresh= x,x為一個整數,含義為行或列(根據axis參數)中非缺失數值個數大于等于x則不算缺失,即小于x則算缺失,會被去除。
subset= 标簽名。選擇要對哪個列或行(與axis中的相反)進行檢查缺失,沒寫的則不檢查。即限制檢查範圍。
相對複雜,請看例子和與例子注釋。
2.對缺失值進行填充——df.fillna
df.fillna(value=None,axis=None)
value= 替換缺失值的值。可以是單個值、字典、dataframe等,但不能是list。差別請看例子。
3.判斷資料是否為缺失——df.isnull
為什麼要這樣用這個方法判斷是否為缺失?
因為nan不等于nan(如下例),即用類似x == nan條件為真 這樣的判斷方法無法判斷一個值x是否為nan。
07.常用統計函數
常用統計函數
describe 針對Series或個DataFrame列計算彙總統計
count 非na值的數量
min、max 計算最小值和最大值
idxmin、idxmax 計算能夠擷取到最大值和最小值得索引值
quantile 計算樣本的分位數(0到1)
sum 值的總和
mean 值得平均數
median 值得算術中位數(50%分位數)
mad 根據平均值計算平均絕對離差
var 樣本值的方差
std 樣本值的标準差
skew 樣本值得偏度(三階矩)
kurt 樣本值得峰度(四階矩)
cumsum 樣本值得累計和
cummin,cummax 樣本值得累計最大值和累計最小值
cumprod 樣本值得累計積
diff 計算一階差分
pct_change 計算百分數變化
檢視函數的詳細資訊
08.panel類型資料分解成dataframe
1.panel的取用方法
panel類型的的取用方法類似與dataframe,看下例子也就明白了。一般要做統計方面的工作,也是如下分解成dataframe進行操作,基本滿足日常需求。了解更多panel的操作可參考:
http://pandas.pydata.org/pandas-docs/stable/api.html#panel2.panel類型資料分解成dataframe方法
09.研究記憶體取dataframe
1.把dataframe存成csv檔案——df.to_csv()
用法如下,檔案都是存到研究空間中的,如果不寫路徑是預設是存在根目錄,如df.to_csv('df.csv')
2.讀取被存成csv檔案的dataframe——pd.read_csv()
原文釋出時間為:2018-08-02
本文作者:TWist
本文來自雲栖社群合作夥伴“
Python中文社群”,了解相關資訊可以關注“
”