2.pandas的資料結構
阿新 • • 發佈:2020-07-24
對於檔案來說,讀取只是最初級的要求,那我們要對檔案進行資料分析,首先就應該要知道,pandas會將我們熟悉的檔案轉換成了什麼形式的資料結構,以便於後續的操作
資料結構
pandas對檔案一共有兩種資料結構的劃分,第一種是二維的DataFrame,第二種是一維的Series
簡單的來說就是,你看到的表,就是DataFrame,而構成表的每一行或者每一列都是Series
Series
列表建立Series
僅僅有資料列表就可以產生最簡單的Series
l = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
s1 = pd.Series(l)
print(s1)
0 a 1 b 2 c 3 d 4 e 5 f 6 g dtype: object # 左側為索引,右側為資料
根據上篇文章我們可以獲取這個Series的索引和資料
print(s1.index)
print(s1.values)
RangeIndex(start=0, stop=7, step=1)
['a' 'b' 'c' 'd' 'e' 'f' 'g']
其實不光可以用數字來進行索引,也可以自定義索引
s1 = pd.Series(l,index=['q','w','e','r','t','y','u'])
q a
w b
e c
r d
t e
y f
u g
dtype: object
字典建立Series
d = { 'a':1, 'b':2, 'c':3 } s1 = pd.Series(d) print(s1)
a 1
b 2
c 3
dtype: int64
字典建立的就會將字典的鍵預設當做索引
查詢資料
跟字典其實是差不多的意思,可以根據索引來查
d = {
'a':1,
'b':2,
'c':3
}
s1 = pd.Series(d)
print(s1['b'])
2
也可以查詢一堆資料
d = {
'a':1,
'b':2,
'c':3
}
s1 = pd.Series(d)
print(s1[['b','c']])
b 2
c 3
dtype: int64
DataFrame
既然這是個二維的資料結構,也就意味著,它不止有列索引,同時還應該有行索引
根據多個字典建立DataFrame
d = {
'state':['s1','s2','s3'],
'year':['2020','2019','2018'],
'inp':['a','b','c']
}
s1 = pd.DataFrame(d)
print(s1)
state year inp
0 s1 2020 a
1 s2 2019 b
2 s3 2018 c
可以通過上篇文章快速的獲取列索引和行索引
d = {
'state':['s1','s2','s3'],
'year':['2020','2019','2018'],
'inp':['a','b','c']
}
s1 = pd.DataFrame(d)
print(s1.index)
print(s1.columns)
RangeIndex(start=0, stop=3, step=1)
Index(['state', 'year', 'inp'], dtype='object')