Pandas实现转换产生新列的项目实践

 更新时间:2024年12月27日 08:32:51   作者:Alex_StarSky  
本文主要介绍了Pandas实现转换产生新列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

时间序列数据在数据分析建模中很常见,例如天气预报,空气状态监测,股票交易等金融场景。此处选择巴黎、伦敦欧洲城市空气质量监测NO2数据作为样例。

列的转换:乘以常数

拿到表格数据后,很多情况下是不能直接就用,还需要对数据进行加工处理。比如知道NO2​监测值后,想知道比如伦敦的浓度是多少?假如单位是m g / m 3 mg/m3。这里假设温度25摄氏度,大气压1013hPa,根据化学公式可以知道,转换因子为 1.882。也就是该列每个元素都乘以因子。

In [1]: air_quality["london_mg_per_cubic"] = air_quality["station_london"] * 1.882

In [2]: air_quality.head()
Out[2]: 
                     station_antwerp  ...  london_mg_per_cubic
datetime                              ...                     
2019-05-07 02:00:00              NaN  ...               43.286
2019-05-07 03:00:00             50.5  ...               35.758
2019-05-07 04:00:00             45.0  ...               35.758
2019-05-07 05:00:00              NaN  ...               30.112
2019-05-07 06:00:00              NaN  ...                  NaN

[5 rows x 4 columns]

这里,创建新的列,可以用’ [] ', 括号内使用新的列属性名称,作为赋值的左边,右边为转换操作。

比如这里的乘法计算,常数是乘以操作列的每一个元素。

两列的计算

比如需要求Paris 和 Antwerp的监测值的比率,结果保存到新列中。

In [3]: air_quality["ratio_paris_antwerp"] = (
   ...:     air_quality["station_paris"] / air_quality["station_antwerp"]
   ...: )
   ...: 

In [4]: air_quality.head()
Out[4]: 
                     station_antwerp  ...  ratio_paris_antwerp
datetime                              ...                     
2019-05-07 02:00:00              NaN  ...                  NaN
2019-05-07 03:00:00             50.5  ...             0.495050
2019-05-07 04:00:00             45.0  ...             0.615556
2019-05-07 05:00:00              NaN  ...                  NaN
2019-05-07 06:00:00              NaN  ...                  NaN

[5 rows x 5 columns]

事实上,计算仍然是以元素为单位的,除法符号应用到每个元素的值。同样,也可以进行加减乘除等运算操作 (+-*/,…) 和逻辑运算操作 (<>==,…) 。逻辑运算,其实在数据表的条件筛选,生成数据子集的操作中大量使用。

更复杂的操作,可以使用apply()函数。

还有很常见的情形,原来的列命名不喜欢,想换个更合适的名字,就可以用rename()函数。

这里就把“station_antwerp” 转换为“BETR801”

In [8]: air_quality_renamed = air_quality.rename(
   ...:     columns={
   ...:         "station_antwerp": "BETR801",
   ...:         "station_paris": "FR04014",
   ...:         "station_london": "London Westminster",
   ...:     }
   ...: )
   ...: 
In [9]: air_quality_renamed.head()
Out[9]: 
                     BETR801  FR04014  ...  london_mg_per_cubic  ratio_paris_antwerp
datetime                               ...                                          
2019-05-07 02:00:00      NaN      NaN  ...               43.286                  NaN
2019-05-07 03:00:00     50.5     25.0  ...               35.758             0.495050
2019-05-07 04:00:00     45.0     27.7  ...               35.758             0.615556
2019-05-07 05:00:00      NaN     50.4  ...               30.112                  NaN
2019-05-07 06:00:00      NaN     61.9  ...                  NaN                  NaN

[5 rows x 5 columns]

不仅仅是指定名称,也可以进行map函数操作。例如,把列名都更换为小写字母。

In [10]: air_quality_renamed = air_quality_renamed.rename(columns=str.lower)

In [11]: air_quality_renamed.head()
Out[11]: 
                     betr801  fr04014  ...  london_mg_per_cubic  ratio_paris_antwerp
datetime                               ...                                          
2019-05-07 02:00:00      NaN      NaN  ...               43.286                  NaN
2019-05-07 03:00:00     50.5     25.0  ...               35.758             0.495050
2019-05-07 04:00:00     45.0     27.7  ...               35.758             0.615556
2019-05-07 05:00:00      NaN     50.4  ...               30.112                  NaN
2019-05-07 06:00:00      NaN     61.9  ...                  NaN                  NaN

[5 rows x 5 columns]

以上代码只是一个简单示例,示例代码中的表达式可以根据实际问题进行修改。

到此这篇关于Pandas实现转换产生新列的项目实践的文章就介绍到这了,更多相关Pandas 转换产生新列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python按修改时间顺序排列文件的实例代码

    python按修改时间顺序排列文件的实例代码

    这篇文章主要介绍了python按修改时间顺序排列文件的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-07-07
  • python中使用smtplib和email模块发送邮件实例

    python中使用smtplib和email模块发送邮件实例

    python脚本发邮件,一般会用到smtplib和email这两个模块。看看该模块怎么使用,先看smtplib模块。 smtplib模块定义了一个简单的SMTP客户端,可以用来在互联网上发送邮件
    2014-04-04
  • Python函数调用的几种方式(类里面,类之间,类外面)

    Python函数调用的几种方式(类里面,类之间,类外面)

    本文主要介绍了Python函数调用的几种方式(类里面,类之间,类外面),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • python 删除非空文件夹的实例

    python 删除非空文件夹的实例

    下面小编就为大家分享一篇python 删除非空文件夹的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python进行相关性分析并绘制散点图详解

    python进行相关性分析并绘制散点图详解

    这篇文章主要介绍了python进行相关性分析并绘制散点图,具有一定借鉴价值,需要的朋友可以参考下,希望能够给你带来帮助
    2021-09-09
  • python命令行引导用户填写ssh登录信息详解

    python命令行引导用户填写ssh登录信息详解

    这篇文章主要为大家介绍了python命令行引导用户填写ssh登录信息详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 深入理解Django的信号机制

    深入理解Django的信号机制

    本文主要介绍了深入理解Django的信号机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 找Python安装目录,设置环境路径以及在命令行运行python脚本实例

    找Python安装目录,设置环境路径以及在命令行运行python脚本实例

    这篇文章主要介绍了找Python安装目录,设置环境路径以及在命令行运行python脚本实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • python+mysql实现个人论文管理系统

    python+mysql实现个人论文管理系统

    这篇文章主要为大家详细介绍了python+mysql实现个人论文管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Python学习之while 循环语句

    Python学习之while 循环语句

    这篇文章主要给大家介绍了关于Python中while循环语句的相关资料,使用while循环语句可以解决程序中需要重复执行的操作,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-10-10

最新评论