python - 添加函数来计算数据框中的“最佳”行
问题描述
如果我有一个像这样的数据框:
Letter freq dollars
0 a 1 421
1 b 3 32
2 c 2 97.4
3 d 0 -40
4 e 9 3214
对于给定的行,我的得分函数可能类似于score = freq * log(dollars)
.
如何获得得分最高的行(字母、频率、美元)?追问,有没有办法让前n行按分数排序?
解决方案
IIUC
df['score'] = df.freq * np.log(df.dollars).fillna(0)
df.sort_values(by='score', ascending=False)
Letter freq dollars score
4 e 9 3214.0 72.677444
1 b 3 32.0 10.397208
2 c 2 97.4 9.157652
0 a 1 421.0 6.042633
3 d 0 -40.0 0.000000
推荐阅读
- c++ - 如何使用 std::istringstream 获得正确的缓冲区大小以进行数据解析
- html - 为什么“宽度=设备宽度”完全不起作用?
- database - 从文件读取到数据库序言
- python - 链表中的冒泡排序。如何按艺术家姓名排序?
- pyspark - SparkContext 未在 zeppelin 中初始化
- azure - 标准 Azure CDN 是否支持 CORS
- java - 休眠刷新旧对象状态
- c# - 如何在从 HTML 生成的 PDF 中定义块的长度?
- kubernetes - Kubernetes 上的 Kafka - 无法在 Kubernetes 之外生产/使用
- discord.js - 仅将特定类别的用户静音