我正在尝试在cols排列和分割的pandas数据框中找到跨列的最小值。例如,如图所示,我将数据框设置为大熊猫。
我正在遍历数据框以获取更多逻辑,并希望在单独的变量中获取T3:T6和T11:T14之间的列中的最小值。
尝试过(a -> c)
迭代时,我希望第1行有9和13。
答案 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)
答案 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)
这将打印您在“测试功能”中输入的最少列