Unnest 多索引数据框 pandas
Unnest multi-index dataframe pandas
我在 pandas 中有多个索引数据框,其中包含名称 (A,B,C..)、特征 (F1,..FN) 和日期。在每个日期,每个名称对每个功能都有一个值。阅读数据给我以下 df:
df = pd.read_csv(path,header=[0,1],index_col=0)
df =
Name A B C ...
Ft F1 F2 F3 ... F_N F1 F2 F3 ... F_N F1 ...
date
1/1 1 4 1 ... 3 3 2 2 1 5 ...
1/2 4 3 3 ... 1 5 1 2 1 4 ...
我现在想重组它,以便名称和日期作为单独的行多次出现,以减少列数:
df =
date Name F1 F2 F3 ... F_N
1/1 A 1 4 1 ... 3
1/1 B 3 2 2 ... 1
... ... ... ... ...
1/2 A 4 3 3 ... 1
1/2 B 5 1 2 ... 1
...
我尝试了不同的解包和分解方法,但 none 似乎得到了我想要的结果。
这是使用 stack
的简单问题,如果您不喜欢 multi-index:
,则可以选择使用 reset_index
df.stack(level=0).reset_index()
输出:
level_0 Name F1 F2 F3
-- --------- ------ ---- ---- ----
0 1/1 A 1 4 1
1 1/1 B 3 2 2
2 1/2 A 4 3 3
3 1/2 B 5 1 2
我在 pandas 中有多个索引数据框,其中包含名称 (A,B,C..)、特征 (F1,..FN) 和日期。在每个日期,每个名称对每个功能都有一个值。阅读数据给我以下 df:
df = pd.read_csv(path,header=[0,1],index_col=0)
df =
Name A B C ...
Ft F1 F2 F3 ... F_N F1 F2 F3 ... F_N F1 ...
date
1/1 1 4 1 ... 3 3 2 2 1 5 ...
1/2 4 3 3 ... 1 5 1 2 1 4 ...
我现在想重组它,以便名称和日期作为单独的行多次出现,以减少列数:
df =
date Name F1 F2 F3 ... F_N
1/1 A 1 4 1 ... 3
1/1 B 3 2 2 ... 1
... ... ... ... ...
1/2 A 4 3 3 ... 1
1/2 B 5 1 2 ... 1
...
我尝试了不同的解包和分解方法,但 none 似乎得到了我想要的结果。
这是使用 stack
的简单问题,如果您不喜欢 multi-index:
reset_index
df.stack(level=0).reset_index()
输出:
level_0 Name F1 F2 F3
-- --------- ------ ---- ---- ----
0 1/1 A 1 4 1
1 1/1 B 3 2 2
2 1/2 A 4 3 3
3 1/2 B 5 1 2