python - 通过键从不同列获取值

标签 python pandas

我有一个包含“键”和“值”列的数据框,我想输入一个键并输出一个值。

import pandas as pd

df = pd.DataFrame({
    'key': ['A', 'B', 'C', 'D'],
    'value': [2, 8, 10, 12]})

print(df)

key = 'B'
value = df[df['key'] == key]['value']
print(value)

当前输出如下:

  key  value
0   A      2
1   B      8
2   C     10
3   D     12
1    8
Name: value, dtype: int64

如何获得输出值:在本例中为 8,因为键是“B”。

最佳答案

您必须使用 df.loc 来获取具体值。你可以给这样的东西。

df.loc[df.key == 'B','value'].item()

其输出将是:

8

或者您也可以给出:

df.loc[df.key == 'B']['value'].item()

或者你可以给:

df[df.key == 'B']['value'].iloc[0]

或者你可以给:

df.loc[df.key == 'B', 'value'].values[0]

如果您确定数据框中只有一项具有 'B' 键,请使用 .item()。如果您不确定,那么我建议您使用 .values[0],因为它会从结果中选择第一个。

所有这些都会给你一个值8

关于python - 通过键从不同列获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69869844/

相关文章:

java - 通过传递参数和结果从 Java 调用 Python 代码

python - is 运算符和 == 运算符

python:如何对从sql查询返回的列表进行排序?

python - Pandas:从以前的时间序列值创建列

python - 从 Pandas DataFrame 中选择与另一个 DataFrame 中的列值完全相同的行

python - 在 Django 中,如何找出与请求匹配的 URL 模式?

python - 删除文件(如果存在)。如果没有,请创建它

Python:如何使用正则表达式拆分列中的值并保留右侧?

python - 使用 lambda 函数嵌套 for 循环

python - 按列对数据框中的某些行进行排序