![](/img/trans.png)
[英]Find min value column and min value column name in Python DataFrame
[英]How to find the first row with min value of a column in dataframe
我有一個數據框,我試圖通過減去兩列的 abs 差異來獲得第三列的最小值,我試圖在其中獲得 col[3] 數據框的第一個或第二個最小值我收到一個錯誤。 有沒有更好的方法來從列 [3] 中獲取最小值的行。
df2 = df[[2,3]]
df2[4] = np.absolute(df[2] - df[3])
#lowest = df.iloc[df[6].min()]
2 3 4
0 -111 -104 7
1 -130 110 240
2 -105 -112 7
3 -118 -100 18
4 -147 123 270
5 225 -278 503
6 102 -122 224
2 3 4
期望的結果 = 2 -105 -112 7
獲取與Series
差異,添加Series.abs
然后通過boolean indexing
最小值進行比較:
s = (df[2] - df[3]).abs()
df = df[s == s.min()]
如果想要新的差異列:
df['diff'] = (df[2] - df[3]).abs()
df = df[df['diff'] == df['diff'].min()]
另一個想法是通過Series.idxmin
通過最小值獲取索引,然后通過DataFrame.loc
選擇,對於一行 DataFrame 是必要的[[]]
:
s = (df[2] - df[3]).abs()
df = df.loc[[s.idxmin()]]
編輯:
如果可能的話,對於轉換為整數的更多動態代碼,請使用:
def int_if_possible(x):
try:
return x.astype(int)
except Exception:
return x
df = df.apply(int_if_possible)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.