您好,登錄后才能下訂單哦!
pandas是python數據分析中非常常用的一個模塊,pandas中功能較多學起來有一定難度,本片文章通過一些簡單例子帶大家快速上手pandas。
我們要用的森林植被的數據,文件名為parks.csv。
首先先載入pandas:
import pandas as pd
然后用pandas讀入數據,把公園編號'Park Code'設置為index
df = pd.read_csv('parks.csv', index_col=['Park Code'])
# 顯示出前5行
df.head(5)
數據的列分別為:公園名字,公園在哪個州,公園大小,維度,經度
獲取單行數據:
使用.iloc?加上行索引獲取單行數據
df.iloc[2]
Park Name ???Badlands National Park
State ???????????????????????????SD
Acres ???????????????????????242756
Latitude ?????????????????????43.75
Longitude ???????????????????-102.5
Name: BADL, dtype: object
使用?.loc?方法加上index的名稱獲取單行數據
df.loc['BADL']?
Park Name ???Badlands National Park
State ???????????????????????????SD
Acres ???????????????????????242756
Latitude ?????????????????????43.75
Longitude ???????????????????-102.5
Name: BADL, dtype: object
獲取多行數據:
loc加上多行數據的名稱
df.loc[['BADL', 'ARCH', 'ACAD']]
iloc加上行索引
df.iloc[[2, 1, 0]]
獲取數據分片
# 獲取前3行數據
df[:3]
# 獲取后3行數據
df[-3:]
獲取單列數據
獲得State這一列數據的前3行
df['State'].head(3)
Park Code
ACAD ???ME
ARCH ???UT
BADL ???SD
Name: State, dtype: object
使用下面df.State方法可以獲得同樣效果
df.State.head(3)
Park Code
ACAD ???ME
ARCH ???UT
BADL ???SD
Name: State, dtype: object
df.Park Code?將會出錯,因為Park Code中間有空格
df.Park Code
?File "<ipython-input-66-49beb60e7bae>", line 1
????df.Park Code
???????????????^
SyntaxError:?invalid syntax
我們可以把所有列的名稱中的空格都替換成_
避免出錯
df.columns = [col.replace(' ', '_').lower() for col in df.columns]
print(df.columns)p=msno.bar(diabetes_data)
Index(['park_name', 'state', 'acres', 'latitude', 'longitude'], dtype='object')
獲取多列數據
columns = ['state', 'acres']
df[columns][:3]
選擇數據的子集
選擇state=='UT'的數據,False表示條件該行條件不成立,True表示該行條件成立
?(df.state == 'UT').head()
Park Code
ACAD ???False
ARCH ????True
BADL ???False
BIBE ???False
BISC ???False
Name: state, dtype: bool
選擇所有state=='UT'結果為True的行
df[df.state == 'UT']
更復雜一些的數據提取,獲取緯度大于60或者面積大于10^6的數據的前三行
df[(df.latitude > 60) | (df.acres > 10**6)].head(3)
對park_name中的字符以空格做切分,切分后放入lambda x: len(x) == 3函數中做判斷,如果判斷正確返回True,判斷錯誤返回False
df[df['park_name'].str.split().apply(lambda x: len(x) == 3)].head(3)
state中的數字為['WA', 'OR', 'CA']中的一個則為True,否則為False
df[df.state.isin(['WA', 'OR', 'CA'])].head()
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。