Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 列的最大值和最小值之间的差异_Python_Pandas - Fatal编程技术网

Python 列的最大值和最小值之间的差异

Python 列的最大值和最小值之间的差异,python,pandas,Python,Pandas,我有一个包含2000多列的熊猫数据框架。所有列都有数值。我想找出每列的最小值和最大值之间的差异。然后我想过滤差异最大的前10列 Col1 Col2 Col3 ..... Col2500 4 1 3 ..... 6 7 5 10 ..... 17 1 22 4 ..... 2 我尝试了一些选择,但没有一个有效! 请提出解决方案。这将在系列中为您提供结果: import pandas as pd import numpy as n

我有一个包含2000多列的熊猫数据框架。所有列都有数值。我想找出每列的最小值和最大值之间的差异。然后我想过滤差异最大的前10列

Col1 Col2 Col3 ..... Col2500
 4     1    3  .....    6
 7     5   10  .....    17
 1    22    4  .....    2
我尝试了一些选择,但没有一个有效!
请提出解决方案。

这将在
系列中为您提供结果:

import pandas as pd
import numpy as np

#sample data
df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))

#transposing data so columns are now rows and column names are indices
df = df.transpose()

#Calculation of Max - Min per row
df['dif'] = df.max(axis=1) - df.min(axis = 1)

#Number of results at the end (10 in your case)
TOP_N = 2

#Resetting the index to get column names and sorting by difference high to low
result = df.reset_index().rename(columns={'index':'ColumnName'})[['ColumnName','dif']].sort_values(by=['dif'],ascending=[False]).head(TOP_N)

print(result)
df.T.apply(lambda x: x.max() - x.min(), axis=1).nlargest(10)
例如:

df

   Col1  Col2  Col3  Col2500
0     4     1     3        6
1     7     5    10       17
2     1    22     4        2

df.T.apply(lambda x: x.max() - x.min(), axis=1).nlargest(3)

Col2       21
Col2500    15
Col3        7
dtype: int64
>>> df.values
array([[  0,  12,  42],
       [  1,  13,  21],
       [ 12,   1,  30],
       [  3,  45, -39],
       [  4,   1,  38]])

>>> diff = df.max() - df.min()
>>>
>>> diff.sort_values(ascending=False)
T3    81
T2    44
T1    12
dtype: int64
>>> diff.sort_values()
T1    12
T2    44
T3    81
dtype: int64
>>>
或者只是:

(df.max() - df.min()).nlargest(10)

这将在
系列中为您提供结果:

df.T.apply(lambda x: x.max() - x.min(), axis=1).nlargest(10)
例如:

df

   Col1  Col2  Col3  Col2500
0     4     1     3        6
1     7     5    10       17
2     1    22     4        2

df.T.apply(lambda x: x.max() - x.min(), axis=1).nlargest(3)

Col2       21
Col2500    15
Col3        7
dtype: int64
>>> df.values
array([[  0,  12,  42],
       [  1,  13,  21],
       [ 12,   1,  30],
       [  3,  45, -39],
       [  4,   1,  38]])

>>> diff = df.max() - df.min()
>>>
>>> diff.sort_values(ascending=False)
T3    81
T2    44
T1    12
dtype: int64
>>> diff.sort_values()
T1    12
T2    44
T3    81
dtype: int64
>>>
或者只是:

(df.max() - df.min()).nlargest(10)
这是我的解决办法

>>> data = {'Col1':[4,7,1],'Col2':[1,5,22], 'Col3':[3,10,4], 'Col2500':[6,17,2]}
>>> df = pd.DataFrame(data)
>>> df
   Col1  Col2  Col3  Col2500
0     4     1     3        6
1     7     5    10       17
2     1    22     4        2
>>> diff = df.max() - df.min()
>>> diff
Col1        6
Col2       21
Col3        7
Col2500    15
>>> pd.DataFrame(diff).sort_values(by=0, ascending=False)
          0
Col2     21
Col2500  15
Col3      7
Col1      6
这是我的解决办法

>>> data = {'Col1':[4,7,1],'Col2':[1,5,22], 'Col3':[3,10,4], 'Col2500':[6,17,2]}
>>> df = pd.DataFrame(data)
>>> df
   Col1  Col2  Col3  Col2500
0     4     1     3        6
1     7     5    10       17
2     1    22     4        2
>>> diff = df.max() - df.min()
>>> diff
Col1        6
Col2       21
Col3        7
Col2500    15
>>> pd.DataFrame(diff).sort_values(by=0, ascending=False)
          0
Col2     21
Col2500  15
Col3      7
Col1      6
希望这有帮助

diff = df.max() - df.min()

diff.sort_values()
例如:

df

   Col1  Col2  Col3  Col2500
0     4     1     3        6
1     7     5    10       17
2     1    22     4        2

df.T.apply(lambda x: x.max() - x.min(), axis=1).nlargest(3)

Col2       21
Col2500    15
Col3        7
dtype: int64
>>> df.values
array([[  0,  12,  42],
       [  1,  13,  21],
       [ 12,   1,  30],
       [  3,  45, -39],
       [  4,   1,  38]])

>>> diff = df.max() - df.min()
>>>
>>> diff.sort_values(ascending=False)
T3    81
T2    44
T1    12
dtype: int64
>>> diff.sort_values()
T1    12
T2    44
T3    81
dtype: int64
>>>
希望这有帮助

diff = df.max() - df.min()

diff.sort_values()
例如:

df

   Col1  Col2  Col3  Col2500
0     4     1     3        6
1     7     5    10       17
2     1    22     4        2

df.T.apply(lambda x: x.max() - x.min(), axis=1).nlargest(3)

Col2       21
Col2500    15
Col3        7
dtype: int64
>>> df.values
array([[  0,  12,  42],
       [  1,  13,  21],
       [ 12,   1,  30],
       [  3,  45, -39],
       [  4,   1,  38]])

>>> diff = df.max() - df.min()
>>>
>>> diff.sort_values(ascending=False)
T3    81
T2    44
T1    12
dtype: int64
>>> diff.sort_values()
T1    12
T2    44
T3    81
dtype: int64
>>>

您可以添加一些示例数据ato问题吗?
diff=[max(col)-min(col)用于列中的列]
sorted(diff)[:10]
?您可以添加一些示例数据ato问题吗?
diff=[max(col)-min(col)用于列中的列]
sorted(diff)[:10]