You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pandas将JSON格式购买频次数据转换为扁平宽表

实现方法

首先先确认你的DataFrame中buys列的类型:如果是从CSV等文件读取得到的,大概率是字符串格式的字典,需要先转为Python原生字典类型;如果本身已经是字典类型可以跳过类型转换步骤。

完整代码

import pandas as pd
import ast

# 假设你的原始DataFrame名为df
# 步骤1:如果buys是字符串格式的字典,先转成Python字典类型
df['buys'] = df['buys'].apply(ast.literal_eval)

# 步骤2:把buys列的字典展开为独立的商品列
expanded_df = df.join(df['buys'].apply(pd.Series))

# 步骤3:设置客户为行索引,删除原始buys列,空值填0后统一转为整数格式
result = expanded_df.set_index('customer').drop(columns=['buys']).fillna(0).astype(int)

逻辑说明

  • df['buys'].apply(pd.Series)会自动把每行字典的key作为列名、value作为对应行的取值,没有对应商品购买记录的行位置默认生成空值NaN
  • fillna(0)会把所有无购买记录的空值替换为0,astype(int)保证所有频次值都是整数格式,符合购买频次的业务特征
  • 最终输出的result就是你需要的宽表格式,支持直接输入后续模型使用,150种商品的规模下完全不会有性能问题。

内容的提问来源于stack exchange,提问作者Santoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 01:06:05