dataframe在展現形式上像極了陣列,但是在資料處理中又和excle,資料庫非常類似。我們知道,對於陣列的處理,不管是python還是c語言,都是按照先行後列的方式方法進行處理。但是在dataframe中查詢和修改元素,既可以先行後列,也可列後行。
首先定義好了一組資料
import pandas as pd
import numpy as np
dates = pd.date_range(
'20200101'
, periods=6)
df=pd.dataframe(np.arange(60,
84).reshape((6
,4))
, index=dates, columns=
list
('abcd'))
print
(df)
資料的內容是60-83之間的連續自然數
a b c d
2020-01
-016061
6263
2020-01
-026465
6667
2020-01
-036869
7071
2020-01
-047273
7475
2020-01
-057677
7879
2020-01
-068081
8283
使用的方式方法,先行後列。不加行號預設整列。但是要注意中是字元型還是數字標籤
print
(df[
'a']
)print
(df[
'a'][2
])print
(df[
'a'][2
:5])
print
(df[
'a']
['20200105'
])
2020-01
-01602020-01
-02642020-01
-03682020-01
-04722020-01
-05762020-01
-0680freq: d, name: a, dtype: int32
682020-01
-03682020-01
-04722020-01
-0576freq: d, name: a, dtype: int32
76
使用df.loc df.iloc df.ix可以完成先行後列。中的形式都是[:,:]。逗號前表示行區間,逗號後表示列區間,可以索引。:可以預設,可以是數字,字元,條件語句等。其中,df.loc 索引必須是行列標籤,df.iloc索引必須是整數,df.ix 是二者的結合提,既可以標籤引索,也可以整數引索。總體來說,三種函式之間用法和效果區別不太大,想要知道原理的同學可以深入了解。df.ix會出現版本更新警告,不是錯誤。這裡就不再執行。
print
(df.loc[
'20200101',]
)print
(df.iloc[5,
3])print
(df.iloc[3:
5,1:
3])print
(df.loc[
'20200105'
,'a'
:'c'
])
輸出結果:
a 60
b 61
c 62
d 63
name:
2020-01
-0100:
00:00, dtype: int32
83 b c
2020-01
-047374
2020-01
-057778
a 76
b 77
c 78
name:
2020-01
-0500:
00:00, dtype: int32
精確到單元格,不同的是,乙個是數字定位,乙個是標籤定位。
print
(df.at[
'20200101'
,'d'])
print
(df.iat[3,
2])
結果
63
74
pandas 定位可以先行後列,也可以先列後行。定位的函式中,帶有』i』的可以進行數字(類似陣列是定位),沒有『i』的則使用行列標籤(字元)定位。但是也不完全絕對。不同工作的人員,有時候需要像白領處理**的方式,有時候需要像程式設計師遍歷的方式,有時候像工程師檢視資料庫的方式。那麼,以下的命令又會輸出什麼呢,你又是習慣那種定位方式呢?
print
(df.loc[
'20200105'][
2])print
(df[:3
])print
(df[df[
'a']
>70]
)
Pandas的基本操作(二)
必須從過去的錯誤學習教訓而非依賴過去的成功。函式 loc 用法 例如獲取第乙個樣本 data 1 data.loc 0 也可以獲取多個樣本,這時需要傳入乙個列表即可 例如,獲取第3和第5個樣本 datas data.loc 2,4 還可以進行切片處理 例如,獲取第3到第9個樣本 datas data...
pandas的基本操作
資料讀寫 讀入mysql資料庫資料 匯入第三方模組 import pymysql 連線mysql資料庫 conn pymysql.connect host localhost user root password test database test port 3306 charset utf8 讀...
pandas的基本操作
準備工作 我們需要裝好pandas庫,然後引入它,一般簡寫為pd import pandas as pd1 生成乙個 方法一 pd.dataframe 三個引數,第乙個為填入的值,第二個index為 的行標,第三個columns為 的列標。第二三個引數如果不填則預設從0開始一直排下去。方法一直接使用...