首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Pandas针对某列的百分数取最大值无效?(上篇)

Pandas针对某列的百分数取最大值无效?(上篇)

作者头像
前端皮皮
发布于 2024-01-04 13:44:14
发布于 2024-01-04 13:44:14
1.3K0
举报

大家好,我是皮皮。

一、前言

前几天在Python白银交流群【上海新年人】问了一个Pandas数据提取的问题,问题如下:大佬们,我发现个问题,请教一下,我把某一列譬如0.001什么的,转化了1%以后,再对某列做print(df[df.点击 == df['点击'].max()],最大值 明明有15%的却显示不出来,只显示出来10%以下的,是什么原因啊?

下面是他的两行代码:

代码语言:javascript
复制
df = df.assign(比例=lambda x:x.回复/(x.点击+x.回复))
df['比例'] = df['比例'].apply(lambda x:'{:.2%}'.format(x))

上面这个写法是把数字转换成字符串了,字符串可以比较大小,是按照从左向右挨个位置比较的,"17"<"2",因为2比1大。

二、实现过程

后来【瑜亮老师】也给了一个提示如下:因为你的百分比这一列是文本格式的。首先的话需要进行数据类型转换,现在先转为flaot型的。

这里【瑜亮老师】给了一个代码如下:

代码语言:javascript
复制
df['比例'] = df['回复']/(df['点击']+df['回复'])
max1 = df[df.比例 == df.比例.max()]
max1['比例'] = max1['比例'].apply(lambda x: '{:.2%}'.format(x))
print(max1)

先取最大值所在的行,然后在转换格式展示数据。结果最大是这个23%,可以满足预期的要求。顺利地解决了粉丝的问题。下一篇文章,一起来看看另外一个解决思路。

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Pandas数据提取的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【上海新年人】提出的问题,感谢【瑜亮老师】给出的思路,感谢【莫生气】、【冯诚】等人参与学习交流。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 一、前言
  • 二、实现过程
  • 三、总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档