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

如何在Python中将DataFrame的两列拆分为多列?

解决方案

拆分D1列

D1列的每个元素由空格分隔为两部分,直接用str.split()方法拆分并展开为多列即可:

import pandas as pd

# 初始化DataFrame
data = {
    "D1" : ["0329 000", "0080 000", "0081 000", "0120 000", "0153 000"],
    "D2" : ["8 d7 a7 7f 8c 11 2f 00 10", "8 00 17 ea 0a 20 1a 20 43", "8 7f 84 60 00 00 00 00 53", "4 00 00 00 00", "8 00 80 10 ff 00 ff 40 ce"],
}
df = pd.DataFrame(data)

# 拆分D1列,生成两列
df[["D1_part1", "D1_part2"]] = df["D1"].str.split(" ", expand=True)

拆分D2列

D2列元素拆分后的个数不一致,str.split(expand=True)会自动生成对应数量的列,缺失位置填充NaN,之后可以给拆分后的列统一命名并合并到原DataFrame:

# 拆分D2列
d2_split = df["D2"].str.split(" ", expand=True)
# 给拆分后的列命名
d2_split.columns = [f"D2_part{i+1}" for i in range(d2_split.shape[1])]
# 合并到原DataFrame
df = pd.concat([df, d2_split], axis=1)

完整代码

如果不需要保留原始的D1、D2列,可添加删除语句:

import pandas as pd

data = {
    "D1" : ["0329 000", "0080 000", "0081 000", "0120 000", "0153 000"],
    "D2" : ["8 d7 a7 7f 8c 11 2f 00 10", "8 00 17 ea 0a 20 1a 20 43", "8 7f 84 60 00 00 00 00 53", "4 00 00 00 00", "8 00 80 10 ff 00 ff 40 ce"],
}
df = pd.DataFrame(data)

# 拆分D1列
df[["D1_part1", "D1_part2"]] = df["D1"].str.split(" ", expand=True)

# 拆分D2列并合并
d2_split = df["D2"].str.split(" ", expand=True)
d2_split.columns = [f"D2_part{i+1}" for i in range(d2_split.shape[1])]
df = pd.concat([df, d2_split], axis=1)

# 可选:删除原始列
# df = df.drop(["D1", "D2"], axis=1)

print(df)

内容的提问来源于stack exchange,提问作者Md. Rashedul Islam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 07:18:19