實戰 | 快速上手Pandas

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)

實戰 | 快速上手Pandas

數據的列分別爲:公園名字,公園在哪個州,公園大小,維度,經度

獲取單行數據

使用.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']]

實戰 | 快速上手Pandas

iloc加上行索引

df.iloc[[2, 1, 0]]

實戰 | 快速上手Pandas

獲取數據分片

# 獲取前3行數據
df[:3]

實戰 | 快速上手Pandas

# 獲取後3行數據
df[-3:]

實戰 | 快速上手Pandas

獲取單列數據
獲得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]

實戰 | 快速上手Pandas

選擇數據的子集
選擇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']

實戰 | 快速上手Pandas

更復雜一些的數據提取,獲取緯度大於60或者面積大於10^6的數據的前三行

df[(df.latitude > 60) | (df.acres > 10**6)].head(3)

實戰 | 快速上手Pandas

對park_name中的字符以空格做切分,切分後放入lambda x: len(x) == 3函數中做判斷,如果判斷正確返回True,判斷錯誤返回False

df[df['park_name'].str.split().apply(lambda x: len(x) == 3)].head(3)

實戰 | 快速上手Pandas

state中的數字爲['WA', 'OR', 'CA']中的一個則爲True,否則爲False

df[df.state.isin(['WA', 'OR', 'CA'])].head()

實戰 | 快速上手Pandas

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章