2024-10-16 22:30:54 发布
网友
我试图在pandas数据框中找到列的最小值,其中col被排列和分割。例如,我有pandas中的数据帧,如图所示。在
为了获得更多的逻辑,我正在数据帧上迭代,并希望在不同的变量中获得T3:T6和T11:T14之间的列中的最小值。在
尝试了print(df.iloc[2,2:,2:4].min(axis=1))
print(df.iloc[2,2:,2:4].min(axis=1))
迭代时,Row1的期望值是9和13。在
创建一个简单的数据帧:
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()函数:
结果:
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)
对于测试数据帧:
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)] })
创建一个可应用于每行的函数,以查找最小值:
然后使用apply在每行上运行函数:
df.apply(lambda row: test(row), axis=1)
这将打印您在“test function”中输入的列的最小值
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的所有行的分钟数
创建一个简单的数据帧:
使用min()函数:
^{pr2}$结果:
如果要选择特定列,请使用loc:
额外奖励:将熊猫提升到另一个水平-最低限度喷漆:
对于测试数据帧:
创建一个可应用于每行的函数,以查找最小值:
^{pr2}$然后使用apply在每行上运行函数:
这将打印您在“test function”中输入的列的最小值
应分别打印t3、t4、t5、16和t11、t12、t13、14的所有行的分钟数
相关问题 更多 >
编程相关推荐