我想創建一個資料框的元組字典。目前,我有一個如下所示的資料框:
xxxxxxxxx | Period 1 | Period 2 |
Customer | -------- | -------- |
Customer 1| 31 | 222 |
Customer 2| 46 | 187 |
我想得到一個元組字典:
tuple_dict =
{('Customer 1', 'Period 1'): 31,
('Customer 2', 'Period 1'): 46,
('Customer 1', 'Period 2'): 222,
('Customer 2', 'Period 2'): 187}
它可能已經發布在某個地方,但不幸的是我找不到它。有人可以幫我嗎?
目前我將上面的表格轉換為字典
dict = df.to_dict():
這創建了 4 個單獨的字典(每個時期一個),
Period 1: {'Customer 1': 31, 'Customer 2': 46}
Period 2: {'Customer 1': 222 ,'Customer 2': 187}
但我真的很想擁有如上所述的元組字典。非常感謝您的幫助!
uj5u.com熱心網友回復:
嘗試:
print(df.stack().to_dict())
印刷:
{
("Customer 1", "Period 1"): 31,
("Customer 1", "Period 2"): 222,
("Customer 2", "Period 1"): 46,
("Customer 2", "Period 2"): 187,
}
uj5u.com熱心網友回復:
從您那里獲得結果后,pandas.DataFrame.to_dict()您可以迭代dict并創建tuple_dict如下:
dct = df.to_dict()
print(dct)
# {
# 'Period 1': {'Customer 1': 31, 'Customer 2': 46},
# 'Period 2': {'Customer 1': 222, 'Customer 2': 187}
# }
res = {(k2, k1) : v2 for k1,v1 in dct.items() for k2,v2 in v1.items()}
print(res)
輸出:
{('Customer 1', 'Period 1'): 31,
('Customer 2', 'Period 1'): 46,
('Customer 1', 'Period 2'): 222,
('Customer 2', 'Period 2'): 187}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/530413.html
上一篇:將字串轉換為具有值串列的字典
