pandas系列之 DataFrame 行列資料篩選,pandasdataframe
一、對DataFrame的認知
DataFrame的本質是行(index)列(column)索引+多列資料。
為了簡化理解,我們不妨換個思路…
現實中,為了簡化對一件事物的描述,我們會選擇幾個特徵。
例如,從(性別、身高、學曆、職業、愛好..)等角度去刻畫一個人,這些“角度”即為“特徵”。
其中,不同的行表示不同的記錄;列代表特徵,不同記錄因各個特徵之間的差異而不同。
DataFrame預設索引是序號(0,1,2…),可以理解成位置索引。一般我們用id標識不同記錄,不會改變index。但為了理解不同特徵(列)含義,我們往往會重新指定column。
一些簡易但不算嚴謹的理解是:
行列
行 – index – 記錄 (一般沿用預設索引)
列 – column – 特徵 (自訂索引)
索引
預設索引 – 序號 – 位置 – 方便索引但理解不易
自訂索引 – 特徵名稱 – 屬性 – 便於理解
二、對dataframe進行行列資料篩選
import pandas as pd,numpy as npfrom pandas import DataFramedf = DataFrame(np.arange(20).reshape((4,5)),column = list('abcde'))
1.df[]&df. 選取列資料
df.a
df[[‘a’,’b’]]
2.df.loc[[index],[colunm]] 通過標籤選擇資料
不對行進行篩選時,[index]處填 : (不可為空),即df.loc[:,’a’]表示選取a列全部資料。
df.loc[0,’a’]
df.loc[0:1,[‘a’,’b’]]
df.loc[[0,2],[‘a’,’c’]]
3.df.iloc[[index],[colunm]] 通過位置選擇資料
不對行進行篩選時,同df.loc[],即[index]處不可為空。
df.iloc[0,0]
df.iloc[0:1,1:3]
df.iloc[[0,2],[1,3]]
4.df.ix[[index],[column]] 通過標籤or位置選擇資料
df.ix[]混合了標籤和位置選擇。需要注意的是,[index]和[column]的框內需要指定同一類的選擇。
df.ix[[0:1],[‘a’,3]]報錯