pandas数据帧的最小与最大差异

时间:2018-05-16 10:04:41

标签: python python-3.x pandas

我有一个如下的数据框,

             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

2 个答案:

答案 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

如果您需要中间值,则可以拆分计算。请注意,0max方法的参数min可确保对每列执行计算。