访问数据框的特定列,索引由idxmax()指定

时间:2018-09-28 22:38:15

标签: python pandas

我有一个数据框行,我想访问其中的特定列。该行的索引是通过idxmax命令指定的。

    idx_interest=(df['colA']==matchingstring).idxmax()

使用此索引,我要访问特定列,即df @ index = idx_interest的colB和colD

    df.loc[idx_interest,['colB','colD']].reset_index().values.tolist()

但是,这样做给了我一个错误:无法对弹性类型执行reduce。我该如何访问从idxmax命令给定的df @索引的列>

1 个答案:

答案 0 :(得分:0)

您需要先将过滤器正确应用于数据帧df,才能返回idx_interest。如果您原来的数据框是MultiIndex,请注意,这将返回一个元组:

idx_interest = df[df['colA']==matchingstring].idxmax()

现在有了idx_interest,您可以将数据框限制为所需的列,然后调用.iloc()以指定行索引:

df[['colB','colD']].iloc[idx_interest].values.tolist()

您在上面提供的代码也可以在假设idx_interest返回int的情况下工作:

df.loc[idx_interest,['colB','colD']].reset_index().values.tolist()