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

无分隔符列值拆分新列时遇KeyError:0L问题求助

无分隔符列值拆分独立列的解决方案

固定长度值的拆分方法

如果你的列中每个值的长度固定(比如每个数值都是固定位数的数字),直接用字符串操作就能快速拆分:

方式一:字符串转列表拆分

先确保列是字符串类型(数值类型需先转换),再通过apply将每个字符拆分为独立列:

import pandas as pd

# 示例数据
df = pd.DataFrame({'target_col': [1234, 5678, 9012]})

# 数值转字符串
df['target_col'] = df['target_col'].astype(str)

# 拆分每个字符到新列
df[['col1', 'col2', 'col3', 'col4']] = df['target_col'].apply(lambda x: pd.Series(list(x)))

方式二:正则提取固定位置字符

用str.extract配合正则表达式,精准提取每个位置的字符:

df[['col1', 'col2', 'col3', 'col4']] = df['target_col'].str.extract(r'(.)(.)(.)(.)', expand=True)

变长值的拆分方法

如果列中值的长度不一致,先统一补全到最长长度(比如补0),再拆分:

# 获取最长值的长度
max_length = df['target_col'].astype(str).str.len().max()
# 补全到最长长度
df['padded_col'] = df['target_col'].astype(str).str.zfill(max_length)
# 循环拆分每一位
for idx in range(max_length):
    df[f'col{idx+1}'] = df['padded_col'].str[idx]

解决KeyError: 0L问题

这个错误是因为你尝试访问DataFrame中不存在的列索引0(比如误写df[0])。先通过以下代码确认当前列名:

print(df.columns)

确保所有操作都针对正确的列名,避免直接用数字索引访问列(除非列名本身是数字)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:33:17