我對python資料系列不是很實用,有人可以解釋我做錯了什么嗎?
我有這個資料框:
| 模型 | 年 | 品牌 | 數字 |
|---|---|---|---|
| 索蘭托 | 2008年 | 起亞 | 19UYA427X1A382858 |
| 克爾維特 | 1968年 | 雪佛蘭 | 1C3CDFEB2FD382486 |
| 赭色 | 1933年 | 豐田 | YV440MBK0F1112644 |
| 克爾維特 | 1968年 | 起亞 | 45UYA427X1A382858 |
我需要這個輸出:
{
"Kia": {
"2008": [
[
"Sorento",
"19UYA427X1A382858"
],
[
"Sorento",
"45UYA427X1A382858"
]
]
},
"Chevrolet": {
"1968": [
[
"Corvette",
"1C3CDFEB2FD382486"
]
]
}
}
所以我需要將具有相同值的專案分組到 subList 中,但我不知道如何去做。Model 和 Year 分組正確,但我不知道如何用 Brand 和 Number 值填寫最后一個串列
## this is my partial solution
d = {k: f.groupby('Year').apply(list).to_dict()
for k, f in df_clean.groupby('Brand')}
pprint.pprint(d)
Output:
'Mitsubishi': {1994.0: ['Model', 'Year', 'Brand', 'Number'],
2005.0: ['Model', 'Year', 'Brand', 'Number'],
'NO_DATA': ['Model', 'Year', 'Brand', 'Number']},
'Nissan': {1993.0: ['Model', 'Year', 'Brand', 'Number'],
1996.0: ['Model', 'Year', 'Brand', 'Number'],
2009.0: ['Model', 'Year', 'Brand', 'Number'],
2011.0: ['Model', 'Year', 'Brand', 'Number'],
2012.0: ['Model', 'Year', 'Brand', 'Number']},
'Oldsmobile': {1999.0: ['Model', 'Year', 'Brand', 'Number']},
uj5u.com熱心網友回復:
您可以使用嵌套的groupby.apply; 一次為品牌,一次為多年:
out = (df.groupby('Brand')
.apply(lambda x: x.groupby('Year')[['Model','Number']]
.apply(lambda y: y.to_numpy().tolist())
.to_dict())
.to_dict())
輸出:
{'Chevrolet': {1968: [['Corvette', '1C3CDFEB2FD382486']]},
'Kia': {1968: [['Corvette', '45UYA427X1A382858']],
2008: [['Sorento', '19UYA427X1A382858']]},
'Toyota': {1933: [['Sienna', 'YV440MBK0F1112644']]}}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/451086.html
上一篇:PowershellForeach回圈遍歷字典并將結果發送到另一個字典。我可以使用for回圈,在python中使用foreach但不能使用powershell
