如何从DataFrame中选择一个值(即使没有条目)

时间:2019-05-29 21:10:06

标签: python pandas

我正在尝试根据某些条件从DataFrame结构中选择一个条目。它有效-只要有一个适合查询的条目即可(以下代码中的第一个示例)

但是有时没有正确的输入项,因此返回值应该是一个空字符串(不是错误消息)。我无法实现。

from pandas import DataFrame

data = {'ID': [1, 1, 2, 2],
        'Key': ['Key1','Key2','Key1','Key2'],
        'Value': ['Value1', 'Value2', 'Value3', 'Value4']
        }

df = DataFrame(data,columns= ['ID', 'Key','Value'])

print(df.loc[(df['ID']==1) & (df['Key'] == 'Key2')].iloc[-1,-1])
# shows "Value2" (correct)

print(df.loc[(df['ID']==1) & (df['Key'] == 'Key3')].iloc[-1,-1])
# should show "" (desired output)

谢谢。

2 个答案:

答案 0 :(得分:2)

以下内容可满足您的需求:

keyname = 'Key2' # Key3
try:
    print(df.loc[(df['ID']==1) & (df['Key'] == keyname)].iloc[-1,-1])
except IndexError:
    print("")

答案 1 :(得分:1)

使用可检查的遮罩更明确地尝试此操作。

mask = (df['ID']==1) & (df['Key'] == 'Key3')
if mask.any():
    print(df[mask].Value.iloc[0])
else:
    print("")