gpt4 book ai didi

python - 获取 pandas DataFrame 中某一行的最大值的列名

转载 作者:行者123 更新时间:2023-11-28 21:45:07 26 4
gpt4 key购买 nike

在数据框中

import pandas as pd 
df=pd.DataFrame({'col1':[1,2,3],'col2':[3,2,1],'col3':[1,1,1]},index= ['row1','row2','row3'])
print df
col1 col2 col3
row1 1 3 1
row2 2 2 1
row3 3 1 1

我想获取某一行中具有最大值的单元格的列名。

所需的输出将是(伪代码):

get_column_name_for_max_values_of(row2)
>['col1','col2']

用什么方式表达最简洁

get_column_name_for_max_values_of(row2)

?

最佳答案

如果不重复,可以使用idxmax , 但它只返回 max 值的第一列:

print (df.idxmax(1))
row1 col2
row2 col1
row3 col1
dtype: object

def get_column_name_for_max_values_of(row):
return df.idxmax(1).ix[row]

print (get_column_name_for_max_values_of('row2'))
col1

但重复使用 boolean indexing :

print (df.ix['row2'] == df.ix['row2'].max())
col1 True
col2 True
col3 False
Name: row2, dtype: bool

print (df.ix[:,df.ix['row2'] == df.ix['row2'].max()])
col1 col2
row1 1 3
row2 2 2
row3 3 1

print (df.ix[:,df.ix['row2'] == df.ix['row2'].max()].columns)
Index(['col1', 'col2'], dtype='object')

函数是:

def get_column_name_for_max_values_of(row):
return df.ix[:,df.ix[row] == df.ix[row].max()].columns.tolist()

print (get_column_name_for_max_values_of('row2'))
['col1', 'col2']

关于python - 获取 pandas DataFrame 中某一行的最大值的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39874501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com