像(df.max() - df.min()).idxmax()
的東西應該給你一個最大列:
>>> df = pd.DataFrame(np.random.random((5,4)), index=pd.Series(range(1,6), name="week"), columns=["City{}".format(i) for i in range(1,5)])
>>> df
City1 City2 City3 City4
week
1 0.908549 0.496167 0.220340 0.464060
2 0.429330 0.770133 0.824774 0.155694
3 0.893270 0.980108 0.574897 0.378443
4 0.982410 0.796103 0.080877 0.416432
5 0.444416 0.667695 0.459362 0.898792
>>> df.max() - df.min()
City1 0.553080
City2 0.483941
City3 0.743898
City4 0.743098
dtype: float64
>>> (df.max() - df.min()).idxmax()
'City3'
>>> df[(df.max() - df.min()).idxmax()]
week
1 0.220340
2 0.824774
3 0.574897
4 0.080877
5 0.459362
Name: City3, dtype: float64
如果有可能,在最大範圍內多於一個列,你可能要像
>>> col_ranges = df.max() - df.min()
>>> df.loc[:,col_ranges == col_ranges.max()]
City3
week
1 0.220340
2 0.824774
3 0.574897
4 0.080877
5 0.459362
代替。
來源
2014-07-15 02:35:18
DSM
只是爲了澄清,你的意思是你想找到最大值爲'max(col)-min(col)'的列嗎? – DSM
是的。範圍如下:範圍(col_i)=最大(col_i) - 最小(col_i)。 – HolaGonzalo