如何在Python中将Plaid交易列表转换为列结构规整的DataFrame
Plaid交易数据转结构化DataFrame操作指南
- 第一步:安装依赖(未安装pandas时执行)
终端执行命令:pip install pandas - 第二步:基础转换(顶层键直接作为列)
你从Plaid获取的交易数据通常是单条交易字典组成的列表,直接传入pd.DataFrame即可生成目标结构:
生成的DataFrame会自动将import pandas as pd # plaid_transactions为存储所有交易数据的列表,元素为你示例中的字典结构 df = pd.DataFrame(plaid_transactions)account_id、amount等所有顶层字典键设为列名,对应值自动填充。其中category列存储原始列表,location、payment_meta列存储原始嵌套字典。 - 第三步:进阶转换(展开嵌套字典为独立列)
如果需要把嵌套的位置、支付元数据拆为单独列,使用pd.json_normalize即可自动完成扁平化处理:
转换后嵌套字段会以import pandas as pd df = pd.json_normalize(plaid_transactions)父键.子键格式作为列名,比如location.address、payment_meta.reference_number都是独立列,无需手动解析。 - 可选操作:拆分分类列表为独立列
如果需要把category的多级分类拆为单独列,补充以下代码即可:# 拆分出三级分类列,空值自动填充为None df[["category_l1", "category_l2", "category_l3"]] = pd.DataFrame(df["category"].tolist(), index=df.index) # 不需要原始category列可执行删除 df = df.drop(columns=["category"])
小提示
如果你熟悉R/dplyr的链式操作,pandas也支持通过.assign()、.query()、.pipe()等方法实现类似%>%的流式处理逻辑,上手门槛很低。
内容的提问来源于stack exchange,提问作者rayfinkle
相关产品推荐
相关产品推荐

