1. 程式人生 > 實用技巧 >2.pandas的資料結構

2.pandas的資料結構

對於檔案來說,讀取只是最初級的要求,那我們要對檔案進行資料分析,首先就應該要知道,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')