我有一个如下的数据框,
40 50 60
Friday 2.68 2.41 2.02
Monday 4.07 3.74 3.41
Thursday 4.94 4.57 4.02
Tuesday 4.82 4.59 3.98
Wednesday 2.76 2.68 2.37
我想从40到90的每个值中减去max-min值,然后从计算中找到键值的最小值(60)。
赞[{40:[4.94 - 2.68 = 2.26]},{50:[4.59-2.41=2.18]},{60:[4.02-2.02 = 2]}]
最后,
[{40:[2.26]},{50:[2.18]},{60:[2]}]
FinalOutput = 60
答案 0 :(得分:3)
对于字典使用dict理解:
d = {k:[v] for k, v in df.max().sub(df.min()).items()}
print (d)
{'50': [2.1799999999999997], '40': [2.2600000000000002], '60': [1.9999999999999996]}
对于最小值idxmin
的索引:
a = df.max().sub(df.min()).idxmin()
print (a)
60
<强>详细强>:
print (df.max().sub(df.min()))
40 2.26
50 2.18
60 2.00
dtype: float64
答案 1 :(得分:0)
在一次计算中,您可以使用numpy.argmin
索引df.columns
:
A = df.values
res = df.columns[(A.max(0) - A.min(0)).argmin()] # 60
如果您需要中间值,则可以拆分计算。请注意,0
和max
方法的参数min
可确保对每列执行计算。