Panda的學習之路(2)——pandas選擇數據
阿新 • • 發佈:2018-08-30
定義 對比 pan panda pri 學習之路 進行 strong 比較
首先定義panda
dates=pd.date_range(‘20130101‘,periods=6) # print(dates) df=pd.DataFrame(np.arange(24).reshape(6,4),index=dates,columns=[‘a‘,‘b‘,‘c‘,‘d‘]) print(df)
a b c d
2013-01-01 0 1 2 3
2013-01-02 4 5 6 7
2013-01-03 8 9 10 11
2013-01-04 12 13 14 15
2013-01-05 16 17 18 19
2013-01-06 20 21 22 23
一、選擇特定的某一列
# 選擇某一列 選列比較簡單 print("選擇具體的某一列") print(df[‘a‘]) #print(df.a)#這兩種表達方式一致
結果:
選擇具體的某一列 2013-01-01 0 2013-01-02 4 2013-01-03 8 2013-01-04 12 2013-01-05 16 2013-01-06 20
二、選擇特定的幾行
2.1通過仿照array的形式來選擇
print("選擇特定的幾行 0~1") print(df[0:1]) print("選擇20130102 到 20130104 行") print(df[‘20130102‘:‘20130104‘])
結果:
選擇特定的幾行 0~1 a b c d 2013-01-01 0 1 2 3 選擇20130102 到 20130104 行 a b c d 2013-01-02 4 5 6 7 2013-01-03 8 9 10 11 2013-01-04 12 13 14 15
2.2按照標簽來選擇(其實應該說是按照index來選擇) 不管是行還是列 都必須是lable
# 按標簽來選擇 print("按照特定的標簽進行") print(df.loc[‘20130102‘])#loc是根據index來選擇對應的行 也就是a行還是b行# 把ab的數據全部弄出來 print("特定列給選出來") print(df.loc[:,[‘a‘,‘b‘]]) print("把某一行的特定列給選出來") print(df.loc[‘20130102‘,[‘a‘,‘b‘]])
結果:
按照特定的標簽進行篩選 a 4 b 5 c 6 d 7 Name: 2013-01-02 00:00:00, dtype: int32 特定列給選出來 a b 2013-01-01 0 1 2013-01-02 4 5 2013-01-03 8 9 2013-01-04 12 13 2013-01-05 16 17 2013-01-06 20 21 把某一行的特定列給選出來 a 4 b 5 Name: 2013-01-02 00:00:00, dtype: int32
2.3按第幾行(第幾列)來進行選擇 不管行列都是數字
# 按第幾行來選擇 print(df.iloc[3])#第三行的數據 iloc是根據數字 也就是第幾行來決定索引 print(df.iloc[3:5,1:3])#三到5行 1:3 列
結果:
a 12 b 13 c 14 d 15 Name: 2013-01-04 00:00:00, dtype: int32 b c 2013-01-04 13 14 2013-01-05 17 18
2.4把lable和數字一起結合起來 就是又可以用數字 又可以用lable
# 把lable和第幾位一起來篩選 print(df.ix[0:3,[‘a‘,‘c‘]]) print(df.ix[‘20130101‘:‘20130105‘,[‘a‘,‘c‘]])
結果:
a c 2013-01-01 0 2 2013-01-02 4 6 2013-01-03 8 10 a c 2013-01-01 0 2 2013-01-02 4 6 2013-01-03 8 10 2013-01-04 12 14 2013-01-05 16 18
三、是或者否的相關篩選
# 是或者否的篩選 只對比a 然後把其它的給顯示出來 # print(df) # a這一列中大於8的 然後把其它的bcd也會顯示出來 print(df[df.a>6])
結果
a b c d
2013-01-03 8 9 10 11
2013-01-04 12 13 14 15
2013-01-05 16 17 18 19
2013-01-06 20 21 22 23
Panda的學習之路(2)——pandas選擇數據