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

Pandas处理Facebook Ads数据:如何将DataFrame单列拆分为多行?

不需要使用for循环,用Pandas原生的explode和JSON解析方法就可以高效完成需求,性能远优于循环实现,适配数百行甚至更大规模的数据集都没有问题。

完整实现代码

import pandas as pd

# 此处替换为你从API获取的原始DataFrame即可
# 下面是模拟的样例数据
df = pd.DataFrame({
    'ad_name': ['ad_1', 'ad_2'],
    'video_play_curve_actions': [
        [{'action_type': 'video_view', 'value': [100, 40, 16, 10, 7, 5, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}],
        [{'action_type': 'video_view', 'value': [100, 51, 22, 13, 9, 7, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}]
    ]
})

# 步骤1:炸开外层列表,取出嵌套的字典结构
df = df.explode('video_play_curve_actions', ignore_index=True)

# 步骤2:解析字典列,拆分出action_type和value两个独立列
df = pd.concat([
    df.drop('video_play_curve_actions', axis=1),
    pd.json_normalize(df['video_play_curve_actions'])
], axis=1)

# 步骤3:炸开value数组,每个数值单独拆分为一行
df = df.explode('value', ignore_index=True)

# 可选:如果需要标注当前行对应第几个播放进度节点,新增以下代码
df['progress_point'] = df.groupby('ad_name').cumcount() + 1

效果说明

执行以上代码后,每个广告对应的value数组会按顺序拆分为独立行,最终输出的结构和预期效果完全一致,全程使用Pandas向量化操作,处理效率极高。

内容的提问来源于stack exchange,提问作者Sebastian Bjørnsen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:57:03