這是原始資料:
Name Wine Year
0 Mark Volnay 1983
1 Mark Volnay 1979
3 Mary Volnay 1979
4 Mary Volnay 1999
5 Mary Champagne 1993
6 Mary Champagne 1989
我想能夠得到的值Year中的值的功能Name和Wine。它會在所有回傳的值Year是必須在相應的值項的列Name與Wine列。
例如:用鑰匙['Mark', 'Volnay']我會得到值[1983, 1979]
我嘗試操縱資料,這是我能得到的最好的結果。
保留每個鍵的一個實體:
Name Wine Year
1 Jean Volnay 1979
4 Pierre Volnay 1999
6 Pierre Champagne 1989
洗掉Year列
Name Wine
1 Jean Volnay
4 Pierre Volnay
6 Pierre Champagne
獲取串列中的值
[['Mark', 'Volnay'], ['Mary', 'Volnay'], ['Mary', 'Champagne']]
我現在有了我需要的鍵,但我無法根據鍵的值獲取原始資料框中的值。
uj5u.com熱心網友回復:
您還可以使用groupby與get_group
def getyear(datafrae,keys:list):
values = df.groupby(['Name', 'Wine']).get_group(tuple(key))['Year']
dedupvalues = [*dict.fromkeys(values).keys()] #incase of duplicates
return dedupvalues
keys = ['Mark', 'Volnay']
print(getyear(df,keys))
[1983, 1979]
uj5u.com熱心網友回復:
你可以使用set_index然后loc:
key = ['Mark', 'Volnay']
lst = df.set_index(['Name', 'Wine']).loc[key, 'Year'].tolist()
輸出:
>>> lst
[1983, 1979]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/389503.html
