pandas按條件過濾 Pandas簡單入門

2021-10-12 21:09:48 字數 2495 閱讀 1351

本文作為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,即...