【pandas】教程:5-从已有数据中创建新列

Pandas 从已有的数据列中创建新列

  • 加载数据

本节使用的数据为 data/air_quality_no2.csv,链接为 pandas案例和教程所使用的数据-机器学习文档类资源-CSDN文库

在这里插入图片描述

在这里插入图片描述

  • 通过

假设在25°,1013hPa 压力下密度为 1.882

air_quality["london_mg_per_cubic"] = air_quality["station_london"] * 1.882
air_quality.head()
                     station_antwerp  station_paris  station_london  \
datetime                                                            
2019-05-07 02:00:00              NaN            NaN            23.0   
2019-05-07 03:00:00             50.5           25.0            19.0   
2019-05-07 04:00:00             45.0           27.7            19.0   
2019-05-07 05:00:00              NaN           50.4            16.0   
2019-05-07 06:00:00              NaN           61.9             NaN   

                     london_mg_per_cubic  
datetime                                
2019-05-07 02:00:00               43.286  
2019-05-07 03:00:00               35.758  
2019-05-07 04:00:00               35.758  
2019-05-07 05:00:00               30.112  
2019-05-07 06:00:00                  NaN  

[] 就可以创建新列,不需要使用循环,直接相乘,他们之间的乘积是逐元素的。

  • 计算 ParisAntwerp 的比例;
air_quality["ratio_paris_antwerp"] = (
    air_quality["station_paris"] / air_quality["station_antwerp"]
)
air_quality.head()
                     station_antwerp  station_paris  station_london  \
datetime                                                            
2019-05-07 02:00:00              NaN            NaN            23.0   
2019-05-07 03:00:00             50.5           25.0            19.0   
2019-05-07 04:00:00             45.0           27.7            19.0   
2019-05-07 05:00:00              NaN           50.4            16.0   
2019-05-07 06:00:00              NaN           61.9             NaN   

                     london_mg_per_cubic  ratio_paris_antwerp  
datetime                                                     
2019-05-07 02:00:00               43.286                  NaN  
2019-05-07 03:00:00               35.758             0.495050  
2019-05-07 04:00:00               35.758             0.615556  
2019-05-07 05:00:00               30.112                  NaN  
2019-05-07 06:00:00                  NaN                  NaN  

+,-,*,/ 和其他的逻辑运算 <, >, ==等等都是逐元素,不需要循环;
如果需要使用更多更广泛的函数,还可以使用 apply

  • 重命名列名
air_quality_renamed = air_quality.rename(
    columns={
        "station_antwerp": "BETR801",
        "station_paris": "FR04014",
        "station_london": "London Westminster",
    }
)
air_quality_renamed.head()
                     BETR801  FR04014  London Westminster  \
datetime                                                  
2019-05-07 02:00:00      NaN      NaN                23.0   
2019-05-07 03:00:00     50.5     25.0                19.0   
2019-05-07 04:00:00     45.0     27.7                19.0   
2019-05-07 05:00:00      NaN     50.4                16.0   
2019-05-07 06:00:00      NaN     61.9                 NaN   

                     london_mg_per_cubic  ratio_paris_antwerp  
datetime                                                     
2019-05-07 02:00:00               43.286                  NaN  
2019-05-07 03:00:00               35.758             0.495050  
2019-05-07 04:00:00               35.758             0.615556  
2019-05-07 05:00:00               30.112                  NaN  
2019-05-07 06:00:00                  NaN                  NaN  

记住

  1. 创建一个新列,并且赋值给输出,可以使用 []
  2. 不需要使用循环,因为他们都是逐元素的。
  3. 使用 rename 可以修改行标签或列名。

【参考】

How to create new columns derived from existing columns? — pandas 1.5.2 documentation (pydata.org)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄金旺铺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值