在熊猫的多个列中查找最小值

时间:2019-08-13 21:07:51

标签: python pandas

我正在尝试在cols排列和分割的pandas数据框中找到跨列的最小值。例如,如图所示,我将数据框设置为大熊猫。

dataframe

我正在遍历数据框以获取更多逻辑,并希望在单独的变量中获取T3:T6和T11:T14之间的列中的最小值。

尝试过(a -> c)

迭代时,我希望第1行有9和13。

3 个答案:

答案 0 :(得分:1)

创建一个简单的数据框:

import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.randint(0,10,size=(10, 4)), columns=list('ABCD'))

    A   B   C   D
0   2   0   5   1
1   9   7   5   5
2   5   5   3   0
3   0   6   3   8
4   4   4   4   0
5   8   2   1   4
6   4   1   1   8
7   6   5   2   9
8   2   4   3   0
9   4   7   1   8

使用min()函数:

df.min()

结果:

A    0
B    0
C    1
D    0

,如果要选择特定的列,请使用loc:

df.loc[:,'B':'C'].min()

B    0
C    1

奖金:将大熊猫提升到另一个水平-画出最低限度:

df.style.apply(lambda x: ['background-color : red; font-size: 16px' if v==x.min() else 'font-size: 16px' for _,v in enumerate(x) ],axis=0)

enter image description here

答案 1 :(得分:0)

print(df[['T'+str(x) for x in range(3,7)]].min(axis=1)]

print(df[['T'+str(x) for x in range(11,15)]].min(axis=1)]

应分别打印t3,t4,t5、16和t11,t12,t13、14所有行的分钟数

答案 2 :(得分:0)

对于测试数据框:

df = pd.DataFrame({'A':[x for x in range(100)], 'B': [x for x in range(10,110)], 'C' : [x for x in range(20,120)] })

创建一个可应用于每一行的函数以查找最小值:

def test(row):
   print(row[['A','B']].min())

然后使用apply在每一行上运行该函数:

df.apply(lambda row: test(row), axis=1)

这将打印您在“测试功能”中输入的最少列