【发布时间】:2022-12-28 13:53:39
【问题描述】:
我有这些数据,我想取消透视并融入列中。数据是一个多头表。我有一个数据示例字典。
在这里编辑___
我不知道如何将像我之前展示的那样具有多个键的字典转换为 df 所以让我们像这样重组字典......
data = {
"id": {
0: "month",
1: "11/30/2021",
2: "12/31/2021",
3: "1/31/2022",
4: "2/28/2022",
5: "3/31/2022",
},
"A48": {0: "storage", 1: "0", 2: "29", 3: "35", 4: "33", 5: "30"},
"A48.1": {0: "use", 1: "0", 2: "1", 3: "0", 4: "0", 5: "0"},
"A62": {0: "direct", 1: "0", 2: "0", 3: "2", 4: "3", 5: "2"},
"A62.1": {0: "storage", 1: "0", 2: "57", 3: "69", 4: "65", 5: "59"},
"A62.2": {0: "use", 1: "0", 2: "1", 3: "0", 4: "0", 5: "0"},
}
现在让我们获取数据框...
dfc = pd.DataFrame.from_dict(data)
dfc.columns=pd.MultiIndex.from_arrays([dfc.columns,dfc.iloc[0]])
dfc = dfc.iloc[1:].reset_index(drop=True)
看起来像这样:
id A48 A48.1 A62 A62.1 A62.2
month storage use direct storage use
0 11/30/2021 0 0 0 0 0
1 12/31/2021 29 1 0 57 1
2 1/31/2022 35 0 2 69 0
3 2/28/2022 33 0 3 65 0
4 3/31/2022 30 0 2 59 0
我正在寻找的是一张这样的桌子。
| month | id | direct | storage | use |
|---|---|---|---|---|
| 11/30/2021 | A48 | NaN | 0 | 0 |
| 12/31/2021 | A48 | NaN | 29 | 1 |
| 1/31/2022 | A48 | NaN | 35 | 0 |
| 2/28/2022 | A48 | NaN | 33 | 0 |
| 3/31/2022 | A48 | NaN | 30 | 0 |
| 11/30/2021 | A62 | 0 | 0 | 0 |
| 12/31/2021 | A62 | 0 | 57 | 1 |
| 1/31/2022 | A62 | 2 | 69 | 0 |
| 2/28/2022 | A62 | 3 | 65 | 0 |
| 3/31/2022 | A62 | 2 | 59 | 0 |
【问题讨论】:
-
原始数据框中没有
11/30/2021 -
@sammywemmy,谢谢你的评论。 11/30/2021 确实出现在数据字典中。
标签: pandas pandas-melt