本文作為pandas入門及筆記用途!
1.匯入pandas及資料表
import pandas as pd
df = pd.read_csv('uk_rain_2014.csv', header=0)
2.更改列標籤及檢視前5行資料
3.查詢資料表行數及維度
df.shape
(33, 7)
len(df)
4.檢視資料表基本資訊
5.過濾資料集
df.rain_octsep < 1500
返回布林值
df[df.rain_octsep < 1500]
返回符合條件的資料
df[df.water_year.str.startswith('199')]
字元型資料過濾
6.索引
數字型行標籤
df.iloc[30]
字元型行標籤
df.loc['2000/01']
設定新索引
df = df.set_index(['water_year'])
解除索引
df = df.reset_index('water_year')
按索引排序
df.sort_index(ascending=false).head()
7.對資料集應用函式
def base_year(year):
base_year = year[:4]
base_year= pd.to_datetime(base_year).year
return base_year
df.head(5)
8.運算元據集的結構
df.groupby(df.year // 10 *10).max()
#按多列分組
decade_rain = df.groupby([df.year // 10 * 10, df.rain_octsep // 1000 * 1000])[['outflow_octsep', 'outflow_decfeb', 'outflow_junaug']].mean()
將一列資料設定為列標籤
decade_rain.unstack(0)
decade_rain.unstack(1)
9.軸向旋轉
high_rain = df[df.rain_octsep > 1250]
high_rain.pivot('year', 'rain_octsep')[['outflow_octsep', 'outflow_decfeb', 'outflow_junaug']].fillna('')
10.合併資料
rain_jpn = pd.read_csv('jpn_rain.csv')
rain_jpn.columns = ['year', 'jpn_rainfall']
uk_jpn_rain = df.merge(rain_jpn, on='year')
uk_jpn_rain.head(5)
11.pandas 快速作圖
uk_jpn_rain.plot(x='year', y=['rain_octsep', 'jpn_rainfall'])
pandas條件組合篩選和按範圍篩選
1 從記錄中選出所有fault code列的值在fault list 487,479,500,505 這個範圍內的記錄 要用.isin 而不能用in,用 in以後選出來的值都是true 和false,然後報錯 valueerror the truth value of a series is amb...
Oracle中按條件過濾重覆記錄
oracle中按條件過濾重覆記錄 在資料處理中,經常會遇到類似這樣的情況 資料庫中存在多條記錄,其中某些字段值相同,其他字段值不同.實際的業務需要針對這樣的情況,只保留一條資料,其他資料刪除.如何做到呢?在sql中有top關鍵字相對容易做到,但是在oracle中不支援top關鍵字,如果實現同樣的效果...
Pandas教程 像寫SQL一樣用Pandas
pandas教程 像寫sql一樣用pandas 對於right index true的解釋稍微清楚一些吧 pandas 合併concat和merge pandas contact 之後,一定要記得用reset index去處理index,不然容易出現莫名的邏輯錯誤 concat 預設axis 0,即...