想象一个像这样的数据框:
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()]
第一步是再次将[行业]的唯一值放入列表中,然后生成执行此操作的循环函数。
不知 Prop 体该怎么做。实际上,这个数据框有 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 - 一个循环根据另一个列值查找最小值,并合并到 1 个数据帧中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69946027/