給定一本字典
dictionary = {'Animal 1': {'Dog': 'Yes', 'Cat': 'No', 'Color': 'Black'},
'Animal 2': {'Dog': 'Yes', 'Cat': 'No', 'Color': 'Brown'},
'Animal 3': {'Dog': 'No', 'Cat': 'Yes', 'Color': 'Grey'}}
如何選擇屬于狗的動物?預期產出['Animal 1','Animal 2']
我可以使用:
pd.DataFrame.from_dict(dictionary).T.loc[pd.DataFrame.from_dict(dictionary).T["Dog"]=='Yes',:].index.to_list()
但它看起來很丑
uj5u.com熱心網友回復:
您可以使用串列理解:
dictionary = {
"Animal 1": {"Dog": "Yes", "Cat": "No", "Color": "Black"},
"Animal 2": {"Dog": "Yes", "Cat": "No", "Color": "Brown"},
"Animal 3": {"Dog": "No", "Cat": "Yes", "Color": "Grey"},
}
out = [k for k, d in dictionary.items() if d.get("Dog") == "Yes"]
print(out)
印刷:
['Animal 1', 'Animal 2']
uj5u.com熱心網友回復:
可以使用中間變數修剪熊貓版本,這樣您就不會重復計算掩碼。而且您不需要 .loc 用于此過濾器。
df = pd.DataFrame.from_dict(dictionary).T
dogs = df[df["Dog"] == "Yes"].index.to_list()
但這與在這個問題的另一個答案中運行 dict 專案相比仍然很復雜。如果將來需要資料框,那只會很有趣。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/527126.html
標籤:Python熊猫字典
