資料科學04 pandas03 分組計算和索引

2021-10-08 02:11:48 字數 4140 閱讀 1712

東陽的學習記錄,堅持就是勝利!

類別資料

理解categorical data

連線和合併

詳見 pandas文件

分組計算三步曲:拆分 -> 應用 -> 合併

df = pd.dataframe(

)# 根據 column 排序,輸出其最大的 n 行資料

deftop

(df, n=

2, column=

'data1'):

return df.sort_values(by=column, ascending=

false)[

:n]top(df, n=5)

df.groupby(

'key1').

(top)

向匿名函式傳遞引數
# 傳遞引數

禁用分組鍵

df.groupby(

'key1'

, group_keys=

false).

(top)

states =

['ohio'

,'new york'

,'vermont'

,'florida'

,'oregon'

,'nevada'

,'california'

,'idaho'

]group_key =

['east']*

4+['west']*

4data = pd.series(np.random.randn(8)

, index=states)

data[

['vermont'

,'nevada'

,'idaho']]

= np.nan

# 將nan用平均值填充

fill_mean =

lambda g: g.fillna(g.mean())

data.groupby(group_key)

.(fill_mean)

df = pd.dataframe(np.random.random(12)

.reshape(4,

3), index=

['one'

,'two'

,'three'

,'four'

], columns=

list

('abc'))

df

注意這裡lamdba的操作單位是元素

format_fun =

lambda x:

'%.03f'

% x# format_fun = ''.format

注意這裡的操作單位是列/行

每一列/行作為series,作為引數傳遞給lambda

# 每一列作為乙個 series 作為引數傳遞給 lambda 函式

df.(

lambda x: x.

max(

)- x.

min())

# 每一行作為乙個 series 作為引數傳遞給 lambda 函式

df.(

lambda x: x.

max(

)- x.

min(

), axis=

1)

categorical 是 pandas 0.15 版本才加入的新功能。用來表達類別資料。

具體見

import pandas as pd

import time

idx =[1

,2,3

,5,6

,7,9

,4,8

]name =[,

"pearl"

,"orange",,

"orange"

,"orange",,

"pearl"

,"orange"

]price =

[5.20

,3.50

,7.30

,5.00

,7.50

,7.30

,5.20

,3.70

,7.30

]df = pd.dataframe(

, index = idx)

print df,

"\n"

print df.memory_usage(),

"\n"

print df.dtypes

print

"*"*

20df[

'fruit'

]= df[

'fruit'

].astype(

'category'

)print df

print df.memory_usage(),

"\n"

print df.dtypes

fruit  price

2 pearl 3.5

3 orange 7.3

6 orange 7.5

7 orange 7.3

4 pearl 3.7

8 orange 7.3

fruit 72

price 72

dtype: int64

fruit object

price float64

dtype: object

********************

fruit price

2 pearl 3.5

3 orange 7.3

6 orange 7.5

7 orange 7.3

4 pearl 3.7

8 orange 7.3

fruit 33

price 72

dtype: int64

fruit category

price float64

dtype: object

可以看到,當資料型別變為categorical data後,fruit列的儲存空間由72,變為33。當資料兩很大時,空間節省的效果很顯著。

見pandas文件:

使用merge實現資料庫上的全連線,左連線,右連線。

python資料科學 Pandas

學習筆記 pandas物件 資料的取值與選擇 pandas數值運算方法 缺失值的處理 層級索引 合併與連線資料集 累積與分組 pandas物件 pandas有三個基本資料結構 series dataframe和index 資料的取值與選擇 pandas數值運算方法 pandas是建立在numpy基礎...

Python資料科學手冊 Pandas 目錄

安裝時使用了 anaconda,那麼 pandas 就已經安裝好了。import pandas pandas.version import pandas as pd 通過按下 tab 鍵顯示 pandas 命名空間的所有內容 pd.顯示 pandas 的內建文件 pd?詳細文件1.序列轉列表 r.v...

Pandas資料分析實戰04

統計以下5個國家2010年人口的佔比情況 country list afghanistan albania arab world aruba bangladesh import numpy as np import pandas as pd import matplotlib.pyplot as p...