python - 基于另一个列值查找最小值并合并到 1 个数据帧中的循环?
问题描述
想象一个像这样的数据框:
import pandas as pd
list ={'Security ID':['3e09ax', 'we9lkl', 'as42we','as5322', 'ot24tas', 'c34ci46a8'],
'Industry':['Airplanes', 'Airplanes', 'Oil', 'Oil', 'Housing', 'Trucking'],
'Amount outstanding':[33, 31, 39, 21, 29, 29]}
df = pd.DataFrame(list)
'''
最终目标是将每个行业的最低(最小)未偿金额的行返回到每日报告的“最小值”数据框中
基本上是这样,但对于每个行业:
df[df['Amount outstanding'] == df['Amount outstanding'].min()]
第一步是再次将 [Industry] 的唯一值放入列表中,然后生成执行此操作的循环函数。
不知道到底该怎么做。这个数据框实际上是 100,000 行,其中 30 个行业每天都在变化。
解决方案
IIUC,你想要groupby
并且transform
:
output = df[df['Amount outstanding']==df.groupby('Industry')['Amount outstanding'].transform(min)]
>>> output
Security ID Industry Amount outstanding
1 we9lkl Airplanes 31
3 as5322 Oil 21
4 ot24tas Housing 29
5 c34ci46a8 Trucking 29
推荐阅读
- python - Python:跨模块使用字典
- c# - 如何获取当前的 PowerPoint 幻灯片编号
- .htaccess - 如何在.htaccess 中阻止对网站主页的访问?
- python - Jupyter Notebooks:如何将笔记本导出为 HTML,包括 splitcell 扩展?
- python - 检查用户输入的单词是否可以从给定的字母列表中生成?
- networking - 可从其他 PC 访问的 Docker 桌面 Linux 容器
- python - 将包含 nan 的字符串转换为 numpy 浮点数组
- c++ - 如何使用运行时大小参数构造 boost spsc_queue 以使用共享内存在两个进程之间交换 cv::Mat 对象?
- javascript - 如何使用 jQuery 切换加号和减号图标?
- java - HotswapAgent 不工作并抛出“无效,删除路径 =”