📌  相关文章
📜  获取行或列中的最小值及其在 Pandas-Dataframe 中的索引位置

📅  最后修改于: 2022-05-13 01:55:15.423000             🧑  作者: Mango

获取行或列中的最小值及其在 Pandas-Dataframe 中的索引位置

让我们讨论如何在 Dataframe 的行和列中找到最小值以及它们的索引位置。

a) 找出行和列中的最小值:

Dataframe.min() :此函数返回给定对象中的最小值。如果输入是一个系列,该方法将返回一个标量,该标量将是系列中值的最小值。如果输入是数据框,则该方法将返回一个系列,该系列在数据框中的指定轴上具有最小值。默认情况下,轴是索引轴。

1)获取每列的最小值:
使用min()函数查找索引轴上的最小值。

代码 :

# import pandas library
import pandas as pd
  
# list of Tuples
data = [
          (20, 16, 23),
          (30, None, 11),
          (40, 34, 11),
          (50, 35, None),
          (60, 40, 13)
        ]
  
# creating a DataFrame object
df = pd.DataFrame(data, index = ['a', 'b', 'c', 'd', 'e'],
                     columns = ['x', 'y', 'z'])
  
# getting a series object containing 
# minimum value from each column
# of given dataframe
minvalue_series = df.min()
  
minvalue_series

输出:

pandas-get-minimum-1

2)获取每一行的最小值:
在具有“axis = 1”属性的数据帧上使用min()函数来查找行轴上的最小值。

代码 :

# import pandas library
import pandas as pd
  
# list of Tuples
data = [
          (20, 16, 23),
          (30, None, 11),
          (40, 34, 11),
          (50, 35, None),
          (60, 40, 13)
        ]
  
# creating a DataFrame object
df = pd.DataFrame(data, index = ['a', 'b', 'c', 'd', 'e'],
                     columns = ['x', 'y', 'z'])
  
# getting a series object containing 
# minimum value from each row
# of given dataframe
minvalue_series = df.min(axis = 1)
  
minvalue_series

输出:

pandas-get-minimum-2

3)获取每列的最小值而不跳过 None Value :
在具有“skipna = False”属性的 Na 值的数据帧上使用min()函数来查找列轴上的最小值。

代码 :

# import pandas library
import pandas as pd
  
# list of Tuples
data = [
          (20, 16, 23),
          (30, None, 11),
          (40, 34, 11),
          (50, 35, None),
          (60, 40, 13)
        ]
  
# creating a DataFrame object
df = pd.DataFrame(data, index = ['a', 'b', 'c', 'd', 'e'],
                     columns = ['x', 'y', 'z'])
  
# getting a series object containing 
# minimum value from each column
# of given dataframe without
# skipping None value
minvalue_series = df.min(skipna = False)
  
minvalue_series

输出:

pandas-get-minimum-3

4)获取单个列的最小值:
在系列上使用min()函数来找到系列中的最小值。

代码 :

# import pandas library
import pandas as pd
  
# list of Tuples
data = [
          (20, 16, 23),
          (30, None, 11),
          (40, 34, 11),
          (50, 35, None),
          (60, 40, 13)
        ]
  
# creating a DataFrame object
df = pd.DataFrame(data, index = ['a', 'b', 'c', 'd', 'e'],
                     columns = ['x', 'y', 'z'])
  
# getting a minimum value
# from column 'x'
minvalue = df['x'].min()
  
minvalue

输出:

20

b) 获取行和列之间的行索引标签或最小值的位置:

Dataframe.idxmin() :此函数返回请求轴上第一次出现最小值的索引。在查找任何索引中最小值的索引时,会排除所有 NA/null 值。

1)获取每列最小值的行索引标签:
使用idxmin()函数沿索引轴查找最小值的索引/标签。

代码 :

# import pandas library
import pandas as pd
  
# list of Tuples
data = [
          (20, 16, 23),
          (30, None, 11),
          (40, 34, 11),
          (50, 35, None),
          (60, 40, 13)
        ]
  
# creating a DataFrame object
df = pd.DataFrame(data, index = ['a', 'b', 'c', 'd', 'e'],
                     columns = ['x', 'y', 'z'])
  
# get the index position\label of
# minimum values in every column
minvalueIndexLabel = df.idxmin()
  
minvalueIndexLabel

输出

pandas-get-minimum-5

2)获取每行最小值的列名:
使用带有 'axis = 1' 属性的idxmin()函数来查找沿列轴的最小值的索引/标签。

代码 :

# import pandas library
import pandas as pd
  
# list of Tuples
data = [
          (20, 16, 23),
          (30, None, 11),
          (40, 34, 11),
          (50, 35, None),
          (60, 40, 13)
        ]
  
# creating a DataFrame object
df = pd.DataFrame(data, index = ['a', 'b', 'c', 'd', 'e'],
                     columns = ['x', 'y', 'z'])
  
# get the index position\label of
# minimum values in every row
minvalueIndexLabel = df.idxmin(axis = 1)
  
minvalueIndexLabel

输出

pandas-get-minimum-4