07-pandas双索引

import numpy as np
import pandas as pd
from  matplotlib import  pyplot as plt
nasa=pd.read_table(r"Y:\Workplace\BigData\percent-bachelors-degrees-women-usa.txt")
def str2float(tallstr):#测试数据转换
    try:
        return float(tallstr)
    except:
        return np.nan

nasa["身高"]=nasa["身高"].map(str2float)#遍历数据且清理
print(nasa["身高"].isnull().sum())#统计nan
print(nasa[nasa["身高"].isnull()].index)#统计哪一行非法

newnasa=nasa.dropna()#去除垃圾数据
result=newnasa.groupby("年龄")["身高"]#根据年龄和身高分组

def age_mean(group):#判断每一组
    if group.size<100:#小于100cm当作nan
        return np.nan
    else:
        return group.mean()#返回平均值
last_retult=result.apply(age_mean)#保存结果,调用函数处理年龄身高分组
last_retult.head(10)#查看前十个

last_retult[0:30].plot()#画图,前30个

  

posted @ 2020-03-08 13:13  胡辣汤王子  阅读(319)  评论(0编辑  收藏  举报