資料分析05 pandas的高階操作

2022-07-26 09:12:12 字數 2146 閱讀 5695

目錄

替換操作可以同步作用於series和dataframe中

示例:

transform應用示例1:

# 錯誤示例:

def abc(s):

return s

df.groupby(by='item')['price'].abc() # abc不是series物件的方法

# 正確使用:

df.groupby(by='item')['price'].transform(abc) #通過transform可以實現

transform應用示例2:自定義乙個求均值的函式,作用到分組結果中

def my_mean(s):

sum = 0

for i in s:

sum+=i

return sum/s.size

df.groupby(by='item')['price'].transform(my_mean)

def my_mean(s):

sum = 0

for i in s:

sum+=i

return sum/s.size

透視表的引數:

pivot_table有四個最重要的引數index、values、columns、aggfunc

index引數:分類彙總的分類條件

values引數:需要對計算的資料進行篩選

aggfunc引數:設定我們對資料聚合時進行的函式操作,當我們未設定aggfunc引數:預設aggfunc='mean'計算均值

columns引數:可以設定列層次字段,對values欄位進行分類

示例:分析nba球星的比賽資料

將資料讀取出來

import pandas as pd

import numpy as np

df = pd.read_csv('./data/basketball_game.csv')

df.head()

1.檢視harden對陣過球隊的比賽資料

df.pivot_table(index='對手')  # 預設分類彙總使用的聚合函式是mean
2.對陣同一對手在不同主客場下的資料,分類條件為對手和主客場

df.pivot_table(index=['對手','主客場'])
3.只需要harden在主客場和不同勝負情況下的得分、籃板與助攻三項資料

df.pivot_table(index=['主客場','勝負'],values=['得分','籃板','助攻'])

# values引數的使用

4.獲取harden在主客場和不同勝負情況下的總得分、總籃板、總助攻數

df.pivot_table(index=['主客場','勝負'],values=['得分','籃板','助攻'],aggfunc='sum')

# aggfunc引數的使用

5.獲取harden在主客場和不同勝負情況下的平均得分、總籃板、最小助攻數

df.pivot_table(index=['主客場','勝負'],aggfunc=)
6.獲取所有隊主客場的總得分

df.pivot_table(index='主客場',values='得分',aggfunc='sum')
7.獲取每個隊主客場的總得分(在總得分的基礎上又進行了對手的分類)

df.pivot_table(index='主客場',values='得分',aggfunc='sum',columns='對手').fillna(value=0)

# columns引數的使用

資料分析 pandas

pandas是乙個強大的python資料分析的工具包,它是基於numpy構建的,正因pandas的出現,讓python語言也成為使用最廣泛而且強大的資料分析環境之一。pandas的主要功能 具備對其功能的資料結構dataframe,series 整合時間序列功能 提供豐富的數 算和操作 靈活處理缺失...

python資料分析 Pandas

import pandas as pd series 可以看做乙個定長的有序字典。基本任意的一維資料都可以用來構造 series 物件 s pd.series 1,2,3.0,abc s1 pd.series data 1,3,5,7 index a b x y 通過下標獲取資料 s1 a seri...

資料分析之Pandas

from pandas import series,dataframe import pandas as pd import numpy as np states california ohio oregon texas year 2000,2001,2002,2003 value 35000,71...