我有一個包含以下內容的熊貓資料框
| 房間 | 位置 | 傳感器 | 測量時間 | 值1 | 值2 | 值3 |
|---|---|---|---|---|---|---|
| 客廳 | A1 | 111 | 27-12-2021 | 1.1 | 1.2 | 0.9 |
| 客廳 | A2 | 112 | 27-12-2021 | 2.1 | 2.1 | 1.9 |
| 客廳 | B1 | 113 | 27-12-2021 | 1.5 | 1.4 | 1.4 |
| 客廳 | B2 | 114 | 27-12-2021 | 1.8 | 1.7 | 1.9 |
| 臥室 | A1 | 211 | 27-12-2021 | 4.2 | 4.5 | 4.4 |
| 客廳 | A1 | 111 | 29-12-2021 | 0.9 | 1.1 | 0.8 |
| 客廳 | A2 | 112 | 29-12-2021 | 1.9 | 1.8 | 1.7 |
| 客廳 | B1 | 115 | 29-12-2021 | 1.4 | 1.3 | 1.2 |
| 客廳 | B2 | 114 | 29-12-2021 | 1.7 | 1.5 | 1.7 |
我想轉換資料框如下
| 房間 | 位置 | 傳感器 | 價值 | 27-12-2021 | 29-12-2021 |
|---|---|---|---|---|---|
| 客廳 | A1 | 111 | 值1 | 1.1 | 0.9 |
| 客廳 | A1 | 111 | 值2 | 1.2 | 1.1 |
| 客廳 | A1 | 111 | 值3 | 0.9 | 0.8 |
| 客廳 | A2 | 112 | 值1 | 2.1 | 1.9 |
| 客廳 | A2 | 112 | 值2 | 2.1 | 1.8 |
| 客廳 | A2 | 112 | 值3 | 1.9 | 1.7 |
| 客廳 | B1 | 113 | 值1 | 1.5 | 不適用 |
| 客廳 | B1 | 113 | 值2 | 1.4 | 不適用 |
| 客廳 | B1 | 113 | 值3 | 1.4 | 不適用 |
| 客廳 | B1 | 115 | 值1 | 不適用 | 1.4 |
| 客廳 | B1 | 115 | 值2 | 不適用 | 1.3 |
| 客廳 | B1 | 115 | 值3 | 不適用 | 1.2 |
| 客廳 | B2 | 114 | 值1 | 1.8 | 1.7 |
| 客廳 | B2 | 114 | 值2 | 1.7 | 1.5 |
| 客廳 | B2 | 114 | 值3 | 1.9 | 1.7 |
| 臥室 | A1 | 211 | 值1 | 4.2 | 不適用 |
| 臥室 | A1 | 211 | 值2 | 4.5 | 不適用 |
| 臥室 | A1 | 211 | 值3 | 4.4 | 不適用 |
我嘗試使用樞軸但沒有成功。
uj5u.com熱心網友回復:
更新
如果您有重復項,請使用pivot_table和一個agg函式:
out = df.pivot_table(index=['Room', 'Position', 'Sensor'],
columns=['Measuring Time'],
values=['Value1', 'Value2', 'Value3'],
aggfunc='last') \
.rename_axis(columns=['Value', None]).stack(level=0).reset_index()
您可以使用pivot:
out = df.pivot(index=['Room', 'Position', 'Sensor'],
columns=['Measuring Time'],
values=['Value1', 'Value2', 'Value3']) \
.rename_axis(columns=['Value', None]).stack(level=0).reset_index()
輸出:
Room Position Sensor Value 27-12-2021 29-12-2021
0 Living Room A1 111 Value1 1.1 0.9
1 Living Room A1 111 Value2 1.2 1.1
2 Living Room A1 111 Value3 0.9 0.8
3 Living Room A2 112 Value1 2.1 1.9
4 Living Room A2 112 Value2 2.1 1.8
5 Living Room A2 112 Value3 1.9 1.7
6 Living Room B1 113 Value1 1.5 NaN
7 Living Room B1 113 Value2 1.4 NaN
8 Living Room B1 113 Value3 1.4 NaN
9 Living Room B1 115 Value1 NaN 1.4
10 Living Room B1 115 Value2 NaN 1.3
11 Living Room B1 115 Value3 NaN 1.2
12 Living Room B2 114 Value1 1.8 1.7
13 Living Room B2 114 Value2 1.7 1.5
14 Living Room B2 114 Value3 1.9 1.7
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/402277.html
上一篇:資料框將列(陣列)與標量相乘
下一篇:根據另一列查找經常一起出現的類別
