1. 程式人生 > >pandas的groupby\query\str\pivot_table\apply

pandas的groupby\query\str\pivot_table\apply

轉載:原文地址

import seaborn as sns
import numpy as np

df = sns.load_dataset(name="titanic")

#對列的字元進行替換
#我們看到船票比如A/5 21171 有兩部分組成,一部分是英文字元,一部分是純數字,如果我們只想保留數字部分,我們直接用str字串進行處理
#df["fare"] = df["fare"].str.replace(r"[^d+]',")

#資料集的過濾
df_temp_1 = df[(df["sex"]=="male")&(df["age"]<=38)]

#query函式,重點函式
df_temp_2 = df.query("age in [22,38]")

#資料的分類

#where函式
df["adult"] = np.where(df["age"]>=18,"adult","childen")

#apply函式
def convert_age(age):
    if age>0 and age<=10:
        return "child"
    elif age<18:
        return "youth"
    else:
        return "adult"

df["age category"] = df["age"].apply(convert_age)

#資料的切片和透視表
df.groupby("sex")["survived"].agg(["count"])

#對資料進行軸切片分析
df.groupby(["survived","pclass"])["age"].agg(["size","max","min","mean"])

#資料透視表
df.pivot_table(columns=["sex"],index=["survived","pclass"],values="age",aggfunc={'age':[np.mean,min,max]})