我有一个数据框行,我想访问其中的特定列。该行的索引是通过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 @索引的列>
答案 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()