我的输入 pandas 数据框如下所示
df = pd.DataFrame([ ['AC', 'CompleteWeight', '0.2'],
['BB', 'CompleteWeight', '0.3'], ['RPL', 'CompleteWeight', '0.1'],
['IA', 'MultiPackageCompleteWeight', '0.2'],
['RPL', 'MultiPackageCompleteWeight', '0.5']],
columns=['Run Type', 'Name', 'Value'])
>>> df
Run Type Name Value
0 AC CompleteWeight 0.2
1 BB CompleteWeight 0.3
2 RPL CompleteWeight 0.1
3 IA MultiPackageCompleteWeight 0.2
4 RPL MultiPackageCompleteWeight 0.5
>>>
我只想使用列和行名称而不是索引在“值”列中获得 0.5。
期望的输出是;
Desired =0.5
你能帮我解决这个问题吗?
最佳答案
使用DataFrame.loc
与 boolean indexing
然后选择第一个值:
mask = (df['Run Type'] == 'RPL') & (df['Name'] == 'MultiPackageCompleteWeight')
desired = df.loc[mask, 'Value'].values[0]
#alternative
#Desired = df.loc[mask, 'Value'].iat[0]
print(desired)
0.5
如果可能RPL
或MultiPackageCompleteWeight
不存在:
desired = next(iter(df.loc[mask, 'Value']), 'no match')
print(desired)
关于Python Pandas 从 Dataframe 中获取单一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58516786/