iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 12
0
AI & Data

Python&ML資料分析系列 第 12

【Day12】Pandas 分類

  • 分享至 

  • xImage
  •  

pandas提供了一個靈活高效的groupby功能,它使你能以一種自然的方式對資料集進行切片、切塊、摘要等操作。根據一個或多個鍵(可以是函數、陣列或DataFrame列名)拆分pandas對象。計算分組摘要統計,如計數、平均值、標準差,或使用者自訂函數。對DataFrame的列應用各種各樣的函數。應用組內轉換或其他運算,如規格化、線性回歸、排名或選取子集等。計算透視表或交叉表。執行分位數分析以及其他分組分析。
1、首先來看看下面這個非常簡單的表格型資料集(以DataFrame的形式):

>>> import pandas as pd
>>> df = pd.DataFrame({'key1':['a', 'a', 'b', 'b', 'a'],
...     'key2':['one', 'two', 'one', 'two', 'one'],
...     'data1':np.random.randn(5),
...     'data2':np.random.randn(5)})
>>> df
      data1     data2 key1 key2
0 -0.410673  0.519378    a  one
1 -2.120793  0.199074    a  two
2  0.642216 -0.143671    b  one
3  0.975133 -0.592994    b  two
4 -1.017495 -0.530459    a  one

假設你想要按key1進行分組,並計算data1列的平均值,我們可以訪問data1,並根據key1調用groupby:

>>> grouped = df['data1'].groupby(df['key1'])
>>> grouped
<pandas.core.groupby.SeriesGroupBy object at 0x04120D70>

變數grouped是一個GroupBy物件,它實際上還沒有進行任何計算,只是含有一些有關分組鍵df['key1']的中間資料而已,然後我們可以調用GroupBy的mean方法來計算分組平均值:

grouped.mean()
key1
a      -1.182987
b       0.808674
dtype: float64

上一篇
【Day11】Python簡單繪圖
下一篇
【Day13】一個爬蟲分析項目例子
系列文
Python&ML資料分析17
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言