慕婉清6462132
2024-01-04 16:46:53
如何從數(shù)據(jù)框中獲取多列的一個最小值/最大值?我找不到一種簡單的方法來獲取這些值,只能循環(huán)遍歷列或多次轉換數(shù)據(jù)幀。我認為必須有更好的方法來解決這個問題。例如,這里有一些代碼...import pandas as pddf = pd.DataFrame([[0,1,2,3], [6,5,None,pd.NaT], [8,None,9,None], [None,12,7,14]], columns=list('ABCD'))...這就是數(shù)據(jù)框的樣子,我想要列“C”和“D”的最小值/最大值。 A B C D0 0.0 1.0 2.0 31 6.0 5.0 NaN NaT2 8.0 NaN 9.0 None3 NaN 12.0 7.0 14有什么好的方法可以做到這一點?附加說明:兩列 ['C','D'] 的結果應為最小值 (2) 的一個值和最大值 (14) 的一個值
3 回答

慕的地6264312
TA貢獻1817條經(jīng)驗 獲得超6個贊
您可以使用,
df[['C','D']].min().min() 2.0
和
df[['C', 'D']].max().max() 14.0

大話西游666
TA貢獻1817條經(jīng)驗 獲得超14個贊
DataFrame.agg
與按列表選擇的列一起使用- ['C','D']
:
df1 = df[['C','D']].agg(['min','max'])
print (df1)
C D
min 2.0 3
max 9.0 14
編輯:對于 2 個標量,您可以使用:
s = df[['C','D']].stack()
print (s)
0 C 2
D 3
2 C 9
3 C 7
D 14
dtype: object
a = s.max()
print (a)
14
b = s.min()
print (b)
2

料青山看我應如是
TA貢獻1772條經(jīng)驗 獲得超8個贊
如果您不確定列名稱,并且想在最后 2 列上執(zhí)行此操作,您可以執(zhí)行以下操作:
In [2138]: df.iloc[:, -2:].agg(['max', 'min'])
Out[2138]:
C D
max 9.0 14
min 2.0 3
添加回答
舉報
0/150
提交
取消