繁体   English   中英

如何将以下数据帧转换为多索引数据帧?

[英]How can I turn the following dataframe into a multi-index dataframe?

我怎样才能实现以下目标:我有一张像这样的桌子

|----------------------|
| Date | A | B | C | D |
|------+---+---+---+---|
| 2000 | 1 | 2 | 5 | 4 |
|------+---+---+---+---|
| 2001 | 2 | 2 | 7 | 4 |
|------+---+---+---+---|
| 2002 | 3 | 1 | 7 | 7 |
|------+---+---+---+---|
| 2003 | 4 | 1 | 5 | 7 |
|----------------------|

并将其转换为多索引类型的数据框:

|------------------------------------|
| Column Name | Date | Value | C | D |
|-------------+------+-------+---+---|
|      A      | 2000 |   1   | 5 | 4 |
|             |------+-------+---+---|
|             | 2001 |   2   | 7 | 4 |
|             |------+-------+---+---|
|             | 2002 |   3   | 7 | 7 |
|             |------+-------+---+---|
|             | 2003 |   4   | 5 | 7 |
|-------------+------+-------+---+---|
|      B      | 2000 |   2   | 5 | 4 |
|             |------+-------+---+---|
|             | 2001 |   2   | 7 | 4 |
|             |------+-------+---+---|
|             | 2002 |   1   | 7 | 7 |
|             |------+-------+---+---|
|             | 2003 |   1   | 5 | 7 |
|------------------------------------|

我曾尝试在数据帧上使用 Melt 函数,但无法弄清楚如何实现这种所需的外观。 我想我还必须将 groupby 函数应用于融化的数据框。

您可以将meltset_index一起set_index 通过添加CD作为id_vars ,列将保持相同的结构,然后您可以将感兴趣的列设置为索引以获得MultiIndex数据帧:

df.melt(id_vars=['Date', 'C', 'D']).set_index(['variable', 'Date'])

               C  D  value
variable Date             
A        2000  5  4      1
         2001  7  4      2
         2002  7  7      3
         2003  5  7      4
B        2000  5  4      2
         2001  7  4      2
         2002  7  7      1
         2003  5  7      1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM