我有一个用pandas处理的csv文件。
我有两列:id
和label
id label
1656fdgfs ok
154685hgfhg45 hello
如果标签与其ID匹配,如何显示标签的值?
例如我给id= 1656fdgfs
而不是打印ok
?
答案 0 :(得分:2)
使用loc
+ boolean indexing
,通过掩码返回Series
所有值:
print (df['id'] == "1656fdgfs")
0 True
1 False
Name: id, dtype: bool
a = df.loc[df['id'] == "1656fdgfs", 'label']
print (a)
0 ok
Name: label, dtype: object
如果始终只返回一个项目(一个项目Series
):
a = df.loc[df['id'] == "1656fdgfs", 'label'].values[0]
print (a)
ok
a = df.loc[df['id'] == "1656fdgfs", 'label'].item()
print (a)
ok
如果可能,有时不需要if
与empty
匹配:
a = df.loc[df['id'] == "1656fdgfs", 'label']
a = np.nan if a.empty else a.item()
print (a)
ok
a = df.loc[df['id'] == "y", 'label']
a = "No match!" if a.empty else a.item()
print (a)
No match!