将字典列表转换为三列DataFrame:提取SOURCE_VALUE为独立列
字典列表转换为指定格式的DataFrame
需求说明
将给定的字典列表转换为包含三列的DataFrame:
SOURCE_VALUE:单独列为每个条目标识add keys:存放除SOURCE_VALUE外的所有键targetvalue:存放对应add keys的值
输入数据
sample = [ { "SOURCE_VALUE":"1272323", "ASSOCIATED_ID_1":"1261523", "CHANGE_REQUEST_SUBMIT_ID":"11417", "ENTITIES_ID":"390258,390346", "PROPOSED_GROUP":"385920", "PROPOSED_UNIT":"403937", "PROPOSED_CENTER":"393306", "PROPOSED_DIVISION":"386774", "PROPOSED_ENTITIES":"390258,390346", "PROPOSED_COMPANY":"385895", "PROPOSED_1":"388316", "PROPOSED_2":"389046" }, { "SOURCE_VALUE":"1272413", "ASSOCIATED_ID_1":"1261523", "CHANGE_REQUEST_SUBMIT_ID":"11417", "ENTITIES_ID":"390258,390346" }, { "SOURCE_VALUE":"1272415", "ASSOCIATED_ID_1":"1261523", "CHANGE_REQUEST_SUBMIT_ID":"11417", "ENTITIES_ID":"390258,390346" } ]
解决方案代码
使用Python的pandas库实现转换,通过遍历字典拆分键值对生成目标结构:
import pandas as pd # 拆分每个字典生成目标数据结构 data_rows = [] for entry in sample: source_id = entry.pop("SOURCE_VALUE") for key, value in entry.items(): data_rows.append({ "SOURCE_VALUE": source_id, "add keys": key, "targetvalue": value }) # 转换为DataFrame result_df = pd.DataFrame(data_rows) # 查看结果 print(result_df)
输出结果示例
| SOURCE_VALUE | add keys | targetvalue |
|---|---|---|
| 1272323 | ASSOCIATED_ID_1 | 1261523 |
| 1272323 | CHANGE_REQUEST_SUBMIT_ID | 11417 |
| 1272323 | ENTITIES_ID | 390258,390346 |
| 1272323 | PROPOSED_GROUP | 385920 |
| 1272323 | PROPOSED_UNIT | 403937 |
| 1272323 | PROPOSED_CENTER | 393306 |
| 1272323 | PROPOSED_DIVISION | 386774 |
| 1272323 | PROPOSED_ENTITIES | 390258,390346 |
| 1272323 | PROPOSED_COMPANY | 385895 |
| 1272323 | PROPOSED_1 | 388316 |
| 1272323 | PROPOSED_2 | 389046 |
| 1272413 | ASSOCIATED_ID_1 | 1261523 |
| 1272413 | CHANGE_REQUEST_SUBMIT_ID | 11417 |
| 1272413 | ENTITIES_ID | 390258,390346 |
| 1272415 | ASSOCIATED_ID_1 | 1261523 |
| 1272415 | CHANGE_REQUEST_SUBMIT_ID | 11417 |
| 1272415 | ENTITIES_ID | 390258,390346 |
内容的提问来源于stack exchange,提问作者venki kasula
相关产品推荐
相关产品推荐

