• 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

    在这里插入图片描述

  • 相关阅读:
    Vue3 set up 的使用
    【Pandas数据处理100例】(九十七):Pandas中的eval()函数使用方法
    (1)(1.16) Maxbotix I2C声纳
    Multilevel Cooperative Coevolution for Large Scale Optimization
    uniapp全选功能制作
    1018 Public Bike Management (动规暴力美学)
    「元宇宙」成为发展新坐标,文化产业如何「沉浸式」升维?
    linux中操作服务器常用命令
    八大算法叙述
    带你认识什么是redis主从复制集群的原理和部署
  • 原文地址:https://blog.csdn.net/weixin_44026026/article/details/126334764