在熊猫数据框中选择单个值

时间:2019-05-22 15:31:18

标签: python pandas dataframe

我有以下数据框:

Exp          Variable  Score  all           best            rsmin
ctr          Qle       MBE    -3.061518      0.082860       -3.921793
ctr          Qh        MBE    12.275757      0.464946       12.288968
ctr          NEE       MBE     0.000022      0.000013       0.000015
ctr          Qle       SD      0.223095      0.010868       0.052601
ctr          Qh        SD      0.170328      0.065823       0.147554
ctr          NEE       SD      0.361303      0.223580       0.327189

我正在读取数据框,如下所示:

df = pd.read_csv(inbasedir + "median_scores.csv", delimiter=",")

我要删除的列数如下:

df.set_index('Exp', inplace=True)
df.columns.name = df.index.name
df.index.name = None
index=df.index

现在我想选择一个值,例如,链接到ctr,Qle,MBE的值,最好是例如0.082860,因为我正在使用:

a=df.loc[['ctr'],['Qle','MBE','best']].values

但它返回了“最佳”一栏:

0.082860
0.464946
0.000013
0.010868
0.065823
0.223580

有人知道如何选择一个值吗?

2 个答案:

答案 0 :(得分:2)

您可以尝试:

df.loc[(df['Exp'] == 'ctr') & (df['Variable'] == 'Qle') & (df['Score'] == 'MBE'), 'best'].values

答案 1 :(得分:1)

尝试使用多索引,现在您正在使用“ Exp”作为没有唯一值的索引。这就是为什么它返回整个最佳列。

df.set_index(['Exp','Variable','Score'],inplace=True)

a=df.loc[('ctr','Qle','MBE'),'best'].values