• Part 4:Pandas新增数据列【直接赋值、apply、assign、分条件赋值】


    Pandas怎样新增数据列?

    在进行数据分析时,经常需要按照一定条件创建新的数据列,然后进行进一步分析

    1.直接赋值
    2. df.apply方法
    3. df.assign方法
    4.按条件选择分组分别赋值

    import pandas as pd

    1、读取CSV数据到dataframe

    1. fpath='./datas/beijing_tianqi/beijing_tianqi_2018.csv'
    2. df=pd.read_csv(fpath)
    3. df.head()

    2、对数据进行一个预处理 

    清理温度列,变成一个数字类型

    1. df.loc[:,'bWendu']=df['bWendu'].str.replace('℃','').astype('int32')
    2. df.loc[:,'yWendu']=df['yWendu'].str.replace('℃','').astype('int32')
    3. df.head()
    4. #AttributeError: Can only use .str accessor with string values! 这种情况下语句代码只能运行一次,当运行第二次的时候,原存储的数据已经被改变了

    需要注意的是:AttributeError: Can only use .str accessor with string values!  这种情况下语句代码只能运行一次,当运行第二次的时候,原存储的数据已经被改变了

    3、直接赋值方法

    将温差加入表格当中,注意wencha是一个series,后面的减法返回的是一个series

    1. df.loc[:,'wencha']=df['bWendu']-df['yWendu']
    2. df.head()

    4、df.apply方法 

    Apply a function along an axis of the DataFrame.
    Objects passed to the function are Series objects whose index is either the DataFrame's index(axis=0) or the DataFrame's columns (axis=1).

    实例:添加─列温度类型:
            1.如果最高温度大于33度就是高温
            2.低于-10度是低温
            3.否则是常温

    1. def get_wendutype(x):
    2. if x['bWendu']>33:
    3. return '高温'
    4. if x['yWendu']<-10:
    5. return'低温'
    6. else:
    7. return '常温'
    8. df.loc[:,'wendutype']=df.apply(get_wendutype,axis=1)
    df['wendutype'].value_counts()

    5、df.assign方法 

    Assign new columns to a DataFrame.
    Returns a new object with all original columns in addition to new ones.

    实例:将温度从摄氏度变成华氏度

    注意:df.assign可以同时添加多个列

    1. #df.assign可以同时添加多个列
    2. df.assign(
    3. yWendu_huashi=lambda x: x['yWendu']*9/5+32,
    4. bWendu_huashi=lambda x: x['bWendu']*9/5+32
    5. )

    6、按条件选择分组分别赋值

    按条件先选择数据,然后对这部分数据赋值新列

    实例:高低温差大于10度,则认为温差大

    1. #先创建空列(第一种创建新列的方法)
    2. df['wencha']=''
    3. df.loc[df['bWendu']-df['yWendu']>10,'wencha']='温差大'
    4. df.loc[df['bWendu']-df['yWendu']<=10,'wencha']='温差正常'
    5. df['wencha'].value_counts()

     

  • 相关阅读:
    Spring Cloud版本,Spring Boot版本详细对应关系
    猿创征文|详解从0开始的嵌入式学习路线,学什么、怎么学?
    使用 【jacoco】对基于 SpringBoot 和 Dubbo RPC 的项目生成测试覆盖率报告:实践+原理
    Java项目--网页版音乐播放器(Spring Boot 后端逻辑)
    【@EnableAspectJAutoProxy为符合切点的目标 bean 自动创建代理】
    【NLP】预训练模型——GPT1
    【CSDN Daily Practice】【二分】X的平方根
    1410. HTML 实体解析器-力扣双百代码-简洁做法
    zblog插件大全-zblog免费插件
    vnc与windows之间的复制粘贴
  • 原文地址:https://blog.csdn.net/qq_46044325/article/details/126807762