python - 根据python中的键将键值数据从数据帧转置到列
问题描述
我有来自网站的 XML 格式的输入,并且能够将其转换为以下格式的数据框,您能帮我了解如何编写 python 代码将数据转换为预期的输出,如下所示.
数据框中的数据
pDate | pname |meta_key |meta_value
0 Mon, 19 Jul 2021 06:13:05 +0000|2021-07-17-67433-43|access_code |67433
1 Mon, 19 Jul 2021 06:13:05 +0000|2021-07-17-67433-43|email |xxx@dddd.com
2 Mon, 19 Jul 2021 06:13:05 +0000|2021-07-17-67433-43|activity_id |43
3 Mon, 19 Jul 2021 06:13:05 +0000|2021-07-17-67433-43|duration_step|50
4 Mon, 19 Jul 2021 06:13:05 +0000|2021-07-17-67433-43|type |M
5 Mon, 19 Jul 2021 06:13:05 +0000|2021-07-17-67433-43|multiplier |122
6 Mon, 19 Jul 2021 06:13:05 +0000|2021-07-17-67433-43|date |2021-07-17
7 Mon, 19 Jul 2021 06:13:05 +0000|2021-07-17-13254-42|access_code |13254
8 Mon, 19 Jul 2021 06:13:05 +0000|2021-07-17-13254-42|email |xxxx@ccc.com
9 Mon, 19 Jul 2021 06:13:05 +0000|2021-07-17-13254-42|activity_id |42
数据框中的预期输出可用于图表
pDate | name | access_code | email | activity_id | duration_step | type | multiplier |date |
Mon, 19 Jul 2021 06:13:05 +0000|2021-07-17-67433-43 | 67433 |xxx@dddd.com |43 |50 | M |. 122. | 2021-07-17
解决方案
尝试.pivot
:
print(
df.pivot(index=["pDate", "pname"], columns="meta_key", values="meta_value")
.reset_index()
.rename_axis("", axis=1)
)
印刷:
pDate pname access_code activity_id date duration_step email multiplier type
0 Mon, 19 Jul 2021 06:13:05 +0000 2021-07-17-13254-42 13254 42 NaN NaN xxxx@ccc.com NaN NaN
1 Mon, 19 Jul 2021 06:13:05 +0000 2021-07-17-67433-43 67433 43 2021-07-17 50 xxx@dddd.com 122 M
推荐阅读
- dart - Flutter,如何让我的原材料纽扣更大更紧密地组合在一起。
- python - 如何使用 Python、GDAL、ArcPy 将 .grib 文件转换为具有正确投影的 GeoTIFF
- sql - 如何将属性插入保存为 nvarchar(max) 的 xml 数据中
- apache-spark - Spark 在多个执行器上分发任务
- ubuntu - 如何修复 Ubuntu 应用程序没有音频?
- google-apps-script - 无法将开发者元数据添加到行
- javascript - 验证日期字段
- javascript - 视频onclick从地方切换
- python - python 正则表达式lookbehindlookahead
- javascript - 如何 - 通过 API > Magento 在 Vue APP 上填写联系表格?