首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >盘点使用Pandas解决问题:对比两列数据取最大值的5个方法

盘点使用Pandas解决问题:对比两列数据取最大值的5个方法

作者头像
Python进阶者
发布2022-04-12 19:44:28
发布2022-04-12 19:44:28
5.4K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,我是Python进阶者。

一、前言

前几天在Python星耀交流群有个叫【iLost】的粉丝问了一个关于使用pandas解决两列数据对比的问题,这里拿出来给大家分享下,一起学习。

大概意思是说在DF中有2列数据,想每行取两列数据中的最大值,形成一个新列,该怎么写?最开始【iLost】自己使用了循环的方法写出了代码,当然是可行的,但是写的就比较难受了。

二、解决过程

这里给出5个方法,感谢大佬们的解答,一起来看看吧!

方法一:【月神】解答

其实这个题目的逻辑和思路也相对简单,但是对于Pandas不熟悉的小伙伴,接受起来就有点难了。

代码语言:javascript
代码运行次数:0
运行
复制
df['max1'] = df[['cell1', 'cell2']].max(axis=1)
df
方法二:【广深-运营-n】解答

这个方法是才哥群里【广深-运营-n】大佬给的方法。

代码如下,亲测可行。

代码语言:javascript
代码运行次数:0
运行
复制
df['max2'] = df.loc[:,['cell1','cell2']].max(axis=1)
df
方法三:【月神】解答

apply方法是最开始想到的方法,但是不知道怎么写,还好有【月神】,这里使用apply方法来解决,代码如下

代码语言:javascript
代码运行次数:0
运行
复制
df['max3'] = df[['cell1', 'cell2']].apply(max, axis=1)
df
方法四:【常州-销售-MT】解答

这个方法也是才哥群里的一个大佬给的思路。

亲测可行,代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
df = df.assign(new=df[['cell1', 'cell2']].max(1))

这里的用法需要注意下,不然容易翻车:

细节拉满:

方法五:【上海-数分-长城】解答

这个方法也是才哥群里的一个大佬给的思路。

使用numpy结合pandas,代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
df['max4'] = np.where(df['cell1'] > df['cell2'],df['cell1'], df['cell2'])
df

真是太秀了。

三、总结

大家好,我是Python进阶者。这篇文章基于粉丝提问,针对df中,想在每行取两列数据中的最大值,作为新的一列问题,给出了具体说明和演示,一共5个方法,顺利地帮助粉丝解决了问题,也帮助大家玩转Pandas,学习Python相关知识。

最后感谢粉丝【iLost】提问,感谢【月神】、【dcpeng】、【北京-算法-浩浩】、【上海-数分-长城】、【广深-运营-n】、【常州-销售-MT】大佬们给出的示例和代码支持,感谢【冯诚】、【凌云剑圣】、【PI】、【艾希·觉罗】、【猎影】等人参与学习交流。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫与数据挖掘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、解决过程
    • 方法一:【月神】解答
    • 方法二:【广深-运营-n】解答
    • 方法三:【月神】解答
    • 方法四:【常州-销售-MT】解答
    • 方法五:【上海-数分-长城】解答
  • 三、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档