【问题标题】:python - get value by key from different columnpython - 从不同的列中按键获取值
【发布时间】:2021-11-08 05:56:21
【问题描述】:

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

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”。

【问题讨论】:

标签: python pandas


【解决方案1】:

您必须使用 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的值

【讨论】:

    【解决方案2】:

    试试这个。这很简单。

    print(df['B'])
    

    【讨论】:

    • 这行不通。你不能给'B',因为它不是列名
    • 不确定这是如何获得赞成票的。这是不正确的答案。请澄清。
    【解决方案3】:

    这应该够好了!!

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

    【讨论】:

      猜你喜欢
      • 2015-10-31
      • 1970-01-01
      • 2021-11-09
      • 1970-01-01
      • 2013-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-11
      相关资源
      最近更新 更多