Python 最大系列';熊猫是什么意思

Python 最大系列';熊猫是什么意思,python,pandas,header,max,mean,Python,Pandas,Header,Max,Mean,我已经搜索了一段时间了,除了硬编码外,我不知道如何用其他方法来实现。 在csv文件中,我必须获得三个系列平均值的最大值,然后返回该系列的名称,这是给我带来麻烦的部分 comp = max(DataTD['Cycle (seconds)'].mean(), DataTD['Run (seconds)'].mean(), DataTD['Swim (seconds)'].mean()) if comp == DataTD['Cycle (seconds)'].mean(): print(Da

我已经搜索了一段时间了,除了硬编码外,我不知道如何用其他方法来实现。 在csv文件中,我必须获得三个系列平均值的最大值,然后返回该系列的名称,这是给我带来麻烦的部分

comp = max(DataTD['Cycle (seconds)'].mean(), DataTD['Run (seconds)'].mean(), DataTD['Swim (seconds)'].mean())
if comp == DataTD['Cycle (seconds)'].mean():
    print(DataTD['Cycle (seconds)'].name)
elif comp == DataTD['Run (seconds)'].mean():
    print(DataTD['Run (seconds)'].name)
elif comp == DataTD['Swim (seconds)'].mean():
    print(DataTD['Swim (seconds)'].name)

类似的东西应该可以工作(还没有测试):


类似的东西应该可以工作(还没有测试):


您可以获得最大列名,然后根据该名称获取平均值

cols = ['Cycle (seconds)', 'Run (seconds)', 'Swim (seconds)']

max_col = max(cols, key=lambda col: DataTD[col].mean())
print('Column name: ' + max_col)
print('Mean: ' + str(DataTD[max_col].mean()))

您可以获得最大列名,然后根据该名称获取平均值

cols = ['Cycle (seconds)', 'Run (seconds)', 'Swim (seconds)']

max_col = max(cols, key=lambda col: DataTD[col].mean())
print('Column name: ' + max_col)
print('Mean: ' + str(DataTD[max_col].mean()))

以样本数据为例

cols = ['Cycle (seconds)', 'Run (seconds)', 'Swim (seconds)']

np.random.seed([3, 1415])

DataTD = pd.DataFrame(
    np.random.randint(10, size=(10, 3)),
    list('ABCDEFGHIJ'), cols
)

   Cycle (seconds)  Run (seconds)  Swim (seconds)
A                0              2               7
B                3              8               7
C                0              6               8
D                6              0               2
E                0              4               9
F                7              3               2
G                4              3               3
H                6              7               7
I                4              5               3
J                7              5               9

IIUC:

使用
mean
和参数
axis=1
以及
idxmax
查找最大值的索引

DataTD.loc[[DataTD[cols].mean(1).idxmax()]]

   Cycle (seconds)  Run (seconds)  Swim (seconds)
J                7              5               9
否则,请尝试

means = DataTD.mean()
means[[means.idxmax()]]

Swim (seconds)    5.7
dtype: float64

以样本数据为例

cols = ['Cycle (seconds)', 'Run (seconds)', 'Swim (seconds)']

np.random.seed([3, 1415])

DataTD = pd.DataFrame(
    np.random.randint(10, size=(10, 3)),
    list('ABCDEFGHIJ'), cols
)

   Cycle (seconds)  Run (seconds)  Swim (seconds)
A                0              2               7
B                3              8               7
C                0              6               8
D                6              0               2
E                0              4               9
F                7              3               2
G                4              3               3
H                6              7               7
I                4              5               3
J                7              5               9

IIUC:

使用
mean
和参数
axis=1
以及
idxmax
查找最大值的索引

DataTD.loc[[DataTD[cols].mean(1).idxmax()]]

   Cycle (seconds)  Run (seconds)  Swim (seconds)
J                7              5               9
否则,请尝试

means = DataTD.mean()
means[[means.idxmax()]]

Swim (seconds)    5.7
dtype: float64
来自Pir的数据

DataTD.loc[DataTD[cols].mean(1).sort_values().iloc[[-1]].index]
Out[625]: 
   Cycle (seconds)  Run (seconds)  Swim (seconds)
J                7              5               9
来自Pir的数据

DataTD.loc[DataTD[cols].mean(1).sort_values().iloc[[-1]].index]
Out[625]: 
   Cycle (seconds)  Run (seconds)  Swim (seconds)
J                7              5               9

我认为需要将键定义为如下函数:
key=lambda col:DataTD[col].mean()
。另外,
col
应该是
max\u col
。我认为需要将键定义为如下函数:
key=lambda col:DataTD[col].mean()。而且
col
应该是
max\u col