在数据框中选择单个值

2024-10-04 09:31:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据框:

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,best的值,它是egal到0.082860,对于我使用的值:

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

但它会返回完整的“最佳”列:

0.082860
0.464946
0.000013
0.010868
0.065823
0.223580

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


Tags: csv数据namedfindexsdvariablebest
2条回答

尝试使用一个多索引,现在您使用“Exp”作为没有唯一值的索引。这就是为什么它会返回整个最佳专栏。你知道吗

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

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

您可以尝试:

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

相关问题 更多 >