---
lang: ja-jp
breaks: true
---
# Python Pandas DataFrame 指定した項目の行を列に変換する 2021-07-26
```python=
df_matrix_transform = df[["adapter_id", "Timestamp", "SSID_id", "NetworkRssiInDecibelMilliwatts"]]
display(df_matrix_transform)
```
```shell=
adapter_id Timestamp SSID_id NetworkRssiInDecibelMilliwatts
0 0 2021-07-23 15:16:46+09:00 309 -23
1 0 2021-07-23 15:16:53+09:00 309 -22
2 0 2021-07-23 15:16:59+09:00 309 -22
3 0 2021-07-23 15:17:05+09:00 309 -21
4 0 2021-07-23 15:17:11+09:00 309 -21
... ... ... ... ...
316432 1 2021-07-24 10:57:40+09:00 684 -72
316433 1 2021-07-24 10:58:29+09:00 684 -73
316434 1 2021-07-24 11:08:04+09:00 684 -74
316435 1 2021-07-24 11:08:34+09:00 684 -76
316436 1 2021-07-24 11:16:44+09:00 684 -71
316437 rows × 4 columns
```
```python=
df_matrix_transform = df_matrix_transform.groupby(["adapter_id", "Timestamp", "SSID_id"]).max().unstack(level = "SSID_id")
df_matrix_transform = df_matrix_transform.reset_index()
display(df_matrix_transform)
```
```shell=
adapter_id Timestamp NetworkRssiInDecibelMilliwatts
SSID_id 16 17 20 22 23 24 25 26 51 52 288 289 309 310 407 408 560 562 564 566 578 602 684 685
0 0 2021-07-23 15:16:46+09:00 -82.0 -80.0 NaN -83.0 -82.0 NaN -82.0 -82.0 NaN NaN -77.0 -83.0 -23.0 -27.0 -39.0 -41.0 NaN NaN NaN NaN -84.0 -84.0 NaN NaN
1 0 2021-07-23 15:16:53+09:00 -80.0 -80.0 NaN -84.0 -80.0 -85.0 -82.0 -83.0 -84.0 NaN -78.0 -85.0 -22.0 -27.0 -39.0 -46.0 -81.0 NaN NaN NaN NaN -84.0 NaN NaN
2 0 2021-07-23 15:16:59+09:00 -82.0 -78.0 NaN -82.0 -80.0 -83.0 -83.0 -81.0 NaN NaN -78.0 -82.0 -22.0 -30.0 -39.0 -43.0 NaN NaN -80.0 -82.0 -84.0 -85.0 NaN NaN
3 0 2021-07-23 15:17:05+09:00 NaN -79.0 NaN -82.0 -82.0 NaN NaN -82.0 -84.0 NaN -80.0 -83.0 -21.0 -29.0 -39.0 -43.0 NaN NaN NaN NaN -84.0 -84.0 NaN NaN
4 0 2021-07-23 15:17:11+09:00 -81.0 -79.0 -84.0 -83.0 -82.0 NaN -82.0 -80.0 NaN NaN -78.0 -84.0 -21.0 -37.0 -39.0 -43.0 NaN NaN NaN -82.0 -86.0 -84.0 NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
26941 1 2021-07-24 14:00:55+09:00 NaN -78.0 -80.0 NaN NaN NaN NaN -76.0 NaN NaN NaN NaN -27.0 -30.0 -27.0 -36.0 NaN NaN -79.0 -79.0 NaN NaN NaN NaN
26942 1 2021-07-24 14:01:01+09:00 NaN NaN NaN NaN -80.0 NaN NaN -77.0 NaN NaN NaN NaN -26.0 -30.0 -27.0 -37.0 NaN NaN -78.0 NaN NaN NaN NaN NaN
26943 1 2021-07-24 14:01:08+09:00 NaN -78.0 -80.0 NaN -78.0 -83.0 NaN -74.0 NaN NaN NaN NaN -28.0 -31.0 -27.0 -38.0 NaN NaN NaN NaN NaN NaN NaN NaN
26944 1 2021-07-24 14:01:14+09:00 NaN -76.0 NaN NaN NaN -83.0 NaN -72.0 NaN NaN NaN NaN -27.0 -32.0 -27.0 -38.0 NaN NaN NaN NaN NaN NaN NaN NaN
26945 1 2021-07-24 14:01:20+09:00 NaN -77.0 NaN NaN -80.0 -81.0 NaN -74.0 NaN NaN NaN NaN -27.0 -31.0 -28.0 -36.0 -79.0 -78.0 -78.0 -78.0 NaN NaN NaN NaN
26946 rows × 26 columns
```
:::info
`unstack()` によって項目を変更したら、`reset_index()` を実行することで、扱いやすい形式となる。
:::
###### tags: `Pandas` `Python` `DataFrame` `unstack`