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

如何基于两个列表创建Pandas DataFrame并解决赋值长度不匹配错误

错误原因

你将DataFrame列赋值的逻辑放在了for循环内部,第一次循环执行时,campaign_name和splittedString两个列表的长度均为1,此时空DataFrame被赋值后,行索引长度被固定为1。第二次循环时两个列表长度变为2,你尝试给只有1行的DataFrame赋值长度为2的列,自然触发长度不匹配的报错。

修复方案

方法1:修改现有代码逻辑

只需要把列赋值的代码移到循环外部,等两个列表收集完所有数据后再生成DataFrame即可:

import pandas

# 假设underscoreList是你提前筛选好的、包含下划线的campaign_name列表
splittedString = list()
campaign_name = list()
for i in underscoreList:
    campaign_name.append(i)
    splittedString.append(i.split("_"))

# 所有数据收集完成后再构建DataFrame
df = pandas.DataFrame({
    "campaign_name": campaign_name,
    "campaign_name1": splittedString
})

print(splittedString)
print(campaign_name)
print(df)

方法2:使用Pandas原生方法(更推荐)

不需要手动写循环,用Pandas的矢量化操作即可完成需求,代码更简洁执行效率也更高:

import pandas as pd

# 第一步:读取原始数据集
df_raw = pd.read_csv("你的数据集文件路径.csv")

# 第二步:筛选campaign_name包含下划线的行,同时拆分出单词列
df = df_raw[df_raw["campaign_name"].str.contains("_")].copy()
df["campaign_name1"] = df["campaign_name"].str.split("_")

print(df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:21:00