我有一個看起來像這樣的熊貓資料框:
| 編號 | 一種 | 乙 |
|---|---|---|
| 01/01/01 00:00:01 | 5 | 2 |
| 01/01/01 00:00:02 | 4 | 5 |
| 01/01/01 00:00:03 | 5 | 4 |
| 02/01/01 00:00:01 | 3 | 8 |
| 02/01/01 00:00:02 | 7 | 4 |
| 02/01/01 00:00:03 | 1 | 3 |
我想根據資料的周期性對資料進行分組,以便最終的資料幀是:
| new_idx | 01/01/01 | 02/01/01 | 舊列 |
|---|---|---|---|
| 00:00:01 | 5 | 3 | 一種 |
| 00:00:02 | 4 | 7 | 一種 |
| 00:00:03 | 5 | 1 | 一種 |
| 00:00:01 | 2 | 8 | 乙 |
| 00:00:02 | 5 | 4 | 乙 |
| 00:00:03 | 4 | 3 | 乙 |
當第一個資料框變大(更多列,更多周期和更多樣本)時,有沒有辦法做到這一點?
uj5u.com熱心網友回復:
一種方法是meltDataFrame,然后將日期時間拆分為日期和時間;最后pivot得到最終輸出的DataFrame:
df = df.melt('idx', var_name='old_column')
df[['date','new_idx']] = df['idx'].str.split(expand=True)
out = df.pivot(['new_idx','old_column'], 'date', 'value').reset_index().rename_axis(columns=[None]).sort_values(by='old_column')
輸出
new_idx old_column 01/01/01 02/01/01
0 00:00:01 A 5 3
2 00:00:02 A 4 7
4 00:00:03 A 5 1
1 00:00:01 B 2 8
3 00:00:02 B 5 4
5 00:00:03 B 4 3
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/465168.html
標籤:Python python-3.x 熊猫 数据框 数据透视表
