這是一個電影的資料表,它的index為數字序列,現在我們要改變它的index內容:
pd.read_csv("csv/jamesbond.csv",index_col="Film").head(2)
在.read_csv()
中更改參數index_col
可以將column
設定成index
,比較原本的和下面的看看哪裡不一樣吧!原本的數字不見了變成"Film"
可以用index
看看有哪些index
bond.index
Index(['Dr. No', 'From Russia with Love', 'Goldfinger', 'Thunderball',
'Casino Royale', 'You Only Live Twice',
'On Her Majesty's Secret Service', 'Diamonds Are Forever',
'Live and Let Die', 'The Man with the Golden Gun',
'The Spy Who Loved Me', 'Moonraker', 'For Your Eyes Only',
'Never Say Never Again', 'Octopussy', 'A View to a Kill',
'The Living Daylights', 'Licence to Kill', 'GoldenEye',
'Tomorrow Never Dies', 'The World Is Not Enough', 'Die Another Day',
'Casino Royale', 'Quantum of Solace', 'Skyfall', 'Spectre'],
dtype='object', name='Film')
set_index()
也可以使用set_index()
boud.set_index("Film" , inplace=True)
我們將Film設定為我們的index,inplace=True
要記得!
reset_index()
reset_index()
可以讓index重置成原本的樣子!(如圖)
bond.reset_index(inplace=True)
loc[]
再來要介紹loc[]
的方法,用index的標籤來取出資料。
bond = pd.read_csv("csv/jamesbond.csv",index_col="Film")
先重新匯入資料,並將index設定為Film,若我們要取出Goldfinger這部的資料(第2 index):
bond.loc["Goldfinger"]
Year 1964
Actor Sean Connery
Director Guy Hamilton
Box Office 820.4
Budget 18.6
Bond Actor Salary 3.2
Name: Goldfinger, dtype: object
當然,loc[]
不止可以一次選取一個(row):
bond.loc[["Goldfinger","From Russia with Love"]]
將要的資料放到陣列內,就可以一次選取多個(row)資料了!
iloc[]
再來介紹一個跟loc[]
很像的方法:iloc[]
,我們將資料重新匯入(避免被上面的干擾),
bond = pd.read_csv("csv/jamesbond.csv")
bond.iloc[15]
iloc[]
是用index位置來取我們要的資料。(如圖)
若是我們要一次取多個(row)資料呢?
bond.iloc[[0,4]]
bond.iloc[0:4]
看得出來上面兩個的差別嗎?一個是取0,4 index的資料,一個是取0到3。
當然,資料不一定index要是數字才可以用iloc[]
!
我們將index設定為Film,再來用iloc[]
:
bond.iloc[0:4]
可以看到其實它也是照index位置去取出資料的,並不是因為index是數字!
loc[]與iloc[]
接下來再來更深入的說明loc[]
和iloc[]
怎麼使用吧!
bond.loc["From Russia with Love"]
上面這是取出From Russia with Love
這部電影的資訊,若要知道他的Actor
我們可以:
bond.loc["From Russia with Love","Actor"]
和剛剛一次取兩個(row)的差別在:
bond.loc[["Goldfinger","From Russia with Love"]]
上面這是[]
裡面再放一個list!
rename()
再來我們來看一下要怎麼將index
或是columns
的名稱改變吧:
rename(columns)
bond = pd.read_csv("csv/jamesbond.csv",index_col="Film")
bond.rename(columns={"Year":"Release Date","Box Office":"Revenue"},inplace=True)
用rename()
這個方法,上述我們改變"Year"為"Release Date","Box Office"為"Revenue"
rename(index)
上面為改變columns
,再來改變index
:
bond.rename(index={"Dr. No":"Doctor No",
"GoldenEye":"Golden Eye",
"The World Is Not Enough":"Best bond Movie Ever"},inplace=True)
可以看到圖片上名稱被改掉了!
drop()
來看看如何刪除吧!
bond.drop(labels=["Box Office","Actor"], axis="columns")
刪除直接使用.drop()
,裡面放入要刪除的labels
,設定axis="columns"
bond.drop(labels=["Box Office","Actor"], axis=1)
axis=1
跟axis="columns"
是一樣的!axis=0
則是和asxis = "row"
一樣。
繼上次講解了如何過濾資料,今天說明了索引的運用,像是換位置、取代、查找或刪除等等,相信對資料的整理已經有一定的概念跟瞭解了,下一篇,也就是第十天會說明Groupby的概念!
那就到這囉,感謝各位觀看(扭)!(應該是鞠躬才對啦!)