我有一本像這樣的字典:
{'A':['John','Mark','Jane'],'B':['Mike','Rob','James']}
和一個資料框,如:
| 姓名 | X | 是的 |
|---|---|---|
| 約翰 | --- | --- |
| 簡 | --- | --- |
我想添加另一列,我們稱之為“組”,如果名稱與任何一個內部串列項匹配,它會填充字典鍵值。理想情況下會這樣結束:
| 姓名 | X | 是的 | 團體 |
|---|---|---|---|
| 約翰 | --- | --- | 一個 |
| 搶 | --- | --- | 乙 |
uj5u.com熱心網友回復:
一種解決方案是創建逆字典,然后使用pd.Series.map:
dct = {"A": ["John", "Mark", "Jane"], "B": ["Mike", "Rob", "James"]}
# 1. create inverse dictionary from dct
inv_dct = {v: k for k, l in dct.items() for v in l} #inv_dct = {'John': 'A', 'Mark': 'A', 'Jane': 'A', 'Mike': 'B', 'Rob': 'B', 'James': 'B'}
# 2. use .map() to create Group column
df["Group"] = df["Name"].map(inv_dct)
# 3. print the dataframe
print(df)
印刷:
Name x y Group
0 John --- --- A
1 Rob --- --- B
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/519623.html
下一篇:將變數放入陣列并找到最大值
