在Pandas 中將寬資料重塑為長格式
在資料操作領域,將資料從寬格式重塑為長格式通常會出現為必要性。考慮以下pandas 資料框:
AA | BB | CC | |
---|---|---|---|
05/03 | 1 | 2 | 3 |
06/03 | 4 | 5 | 6 |
07/03 | 7 | 8 | 9 |
08/03 | 5 | 7 | 1 |
將其轉換為所需的長格式:
| AA | 05/03 | 1 |
| AA | 06/03 | 4 |
| AA | 07/03 | 7 |
| AA | 08/03 | 5 |
| BB | 05/03 | 2 |
| BB | 06/03 | 5 |
| BB | 07/03 | 8 |
| BB | 08/03 | 7 |
|抄送| 05/03 | 3 |
|抄送| 06/03 | 6 |
|副本| 07/03 | 9 |
|副本| 08/03 | 1 |
我們使用pandas.melt 或pandas.DataFrame.melt 函數,它可以優雅地將寬資料轉換為長格式。
import pandas as pd df = pd.DataFrame({ 'date' : ['05/03', '06/03', '07/03', '08/03'], 'AA' : [1, 4, 7, 5], 'BB' : [2, 5, 8, 7], 'CC' : [3, 6, 9, 1] }).set_index('date') df = df.reset_index() pd.melt(df, id_vars='date', value_vars=['AA', 'BB', 'CC'])
或者,可以透過呼叫省略reset_index 步驟與ignore_index = False融合:
dfm = df.melt(ignore_index=False).reset_index()
產生所需的長格式:
date | variable | value | |
---|---|---|---|
0 | 05/03 | AA | 1 |
1 | 06/03 | AA | 4 |
2 | 07/03 | AA | 7 |
3 | 08/03 | AA | 5 |
4 | 05/03 | BB | 2 |
5 | 06/03 | BB | 5 |
6 | 07/03 | BB | 8 |
7 | 08/03 | BB | 7 |
8 | 05/03 | CC | 3 |
9 | 06/03 | CC | 6 |
10 | 07/03 | CC | 9 |
11 | 08/03 | CC | 1 |
此轉換可根據共享日期和列名稱與其他資料幀進行高效合併。
以上是如何在 Pandas 中將寬資料轉換為長格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!