1 ,未成年人数 :data[data[“Age”] >= 18][“Age”]
目的 : 求未成年人数 ( 113 )实验 : 先测试真实值是多少
if __name__ == '__main__':
data = pd.read_csv("titanic_train.csv")
cols = ["PassengerId","Pclass","Fare","Survived","Sex","Age"]
data = data[cols]
data = data.dropna(axis=0)
data_age = data[data["Age"] >= 18]["Age"]
print(data_age.size)
data_age = data[data["Age"] < 18]["Age"]
print(data_age.size)
=====================================
601
113
2 ,自定义聚合函数,求未成年人数 : data.pivot_table
目的 : 求每个船舱等级的未成年人数注意 : 自定义函数,接收到的是 Series代码 :
import numpy as np
import pandas as pd
import pandas.core.frame
if __name__ == '__main__':
data = pd.read_csv("titanic_train.csv")
cols = ["PassengerId","Pclass","Fare","Survived","Sex","Age"]
data = data[cols]
data = data.dropna(axis=0)
def count_cld(col:pd.core.frame.Series):
n = 0
for i in col:
if i < 18:
n=n+1
return n
res = data.pivot_table(index="Pclass",values="Age",aggfunc=count_cld)
print(res)
=========================================
Age
Pclass
1 12.0
2 23.0
3 78.0
3 ,自定义转换函数,未成年幸存率 : data.apply(adulorcld,axis=1)
目的 : 查看是否成年,与是否幸存的关系思路 : 1 ,自定义函数 : 用是否达到 18 岁,来确定是否成年 2 ,得到新的列 : 得到是否成年列 3 ,加入 : 将新的列,加入到原来的数据中 4 ,聚合计算 : 得到是否成年与是否幸存的关系代码 :
if __name__ == '__main__':
data = pd.read_csv("titanic_train.csv")
cols = ["PassengerId","Pclass","Fare","Survived","Sex","Age"]
data = data[cols]
data = data.dropna(axis=0)
def adulorcld(row):
age = row["Age"]
if age>=18:
return "adult"
else:
return "cld"
col_adcl = data.apply(adulorcld,axis=1)
data["adcl"] = col_adcl
res = data.pivot_table(index="adcl",values="Survived",aggfunc=np.mean)
print(res)
=========================================================
Survived
adcl
adult 0.381032
cld 0.539823
转载请注明原文地址:https://ipadbbs.8miu.com/read-65422.html