• pandas学习(四) apply


    pandas学习(四) apply

    • .apply() Pandas 的 apply() 方法是用来调用一个函数(Python method),让此函数对数据对象进行批量处理。
    • .to_datatime 将给定的数据按照指定格式转换成日期格式
    • .resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法。
    • dataframe.idxmax(),函数返回在请求的轴上第一次出现最大值的索引

    1.数据集1

    在这里插入图片描述

    1.1将数据从“学校”切片到“监护人”列

    stud_alcoh = df.loc[: , "school":"guardian"]
    stud_alcoh.head()
    
    • 1
    • 2

    在这里插入图片描述

    1.2 写一个lambda函数可以使得首字母大写

    capitalizer = lambda x: x.capitalize()
    
    • 1
    stud_alcoh['Mjob'].apply(capitalizer)
    stud_alcoh['Fjob'].apply(capitalizer)
    
    • 1
    • 2

    1.3 需要赋值才能使得原数据集值更改

    stud_alcoh['Mjob'] = stud_alcoh['Mjob'].apply(capitalizer)
    stud_alcoh['Fjob'] = stud_alcoh['Fjob'].apply(capitalizer)
    stud_alcoh.tail()
    
    • 1
    • 2
    • 3

    1.4 创建一个名为“majority”的函数,该函数将布尔值返回到名为 legal_drinker 的新列

    def majority(x):
        if x > 17:
            return True
        else:
            return False
    
    • 1
    • 2
    • 3
    • 4
    • 5
    stud_alcoh['legal_drinker'] = stud_alcoh['age'].apply(majority)
    stud_alcoh.head()
    
    • 1
    • 2

    1.5 数据集的值乘以10

    def times10(x):
        if type(x) is int:
            return 10 * x
        return x
    
    • 1
    • 2
    • 3
    • 4
    stud_alcoh.applymap(times10).head(10)
    
    • 1

    2.数据集2

    在这里插入图片描述
    是否注意到年份的类型是 int64。但是pandas有一种不同的类型来使用时间序列

    2.1 将 Year 转换为 datetime64

    # pd.to_datetime(crime)
    crime.Year = pd.to_datetime(crime.Year, format='%Y')
    crime.info()
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    2.2 设置Year作为dataframe的index

    crime = crime.set_index('Year', drop = True)
    crime.head()
    
    • 1
    • 2

    在这里插入图片描述

    2.3 按十年对年份进行分组并对值求和

    # resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法。重新取样时间序列数据。
    # 下采样是将一个时间序列数据集重新采样到一个更大的时间框架。从几分钟到几小时,从几天到几年。结果的行数将减少,并且可以使用mean()、min()、max()、sum()等聚合值。
    
    # 使用resample去对每十年求和
    crimes = crime.resample('10AS').sum()
    
    # 使用resample去获取“Population”列的最大值
    population = crime['Population'].resample('10AS').max()
    
    # Updating the "Population" column
    crimes['Population'] = population
    
    crimes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    2.4 在美国生活最危险的十年是什么?

    # dataframe.idxmax()函数返回在请求的轴上第一次出现最大值的索引
    crime.idxmax(0)
    
    • 1
    • 2

    在这里插入图片描述

  • 相关阅读:
    javacofig几个常用注解
    华为云会议,轻松实现远程智能办公
    JavaSE之包装类
    【Java后端】美团提前批一面和二面面经!
    微服务docker部署实战
    斯坦福机器学习 Lecture1 (机器学习,监督学习、回归问题、分类问题定义)
    计算机毕业设计SSM电影票网上订票系统【附源码数据库】
    mmclassification 训练自定义数据
    Debezium系列之:将Debezium的info日志、warn日志、error日志拆分到不同文件中
    以客户为中心,CRM系统可以给企业带来哪些价值?值得一看
  • 原文地址:https://blog.csdn.net/weixin_44026026/article/details/126334764