如何用Pandas将含编码与描述的单列拆分为两列?
Pandas单列拆分解决方案
你的代码逻辑本身没问题,问题出在列名大小写不匹配:原数据列名是Code(首字母大写),但你代码里用了小写的code,导致无法定位目标列。另外,如果数据中存在多个连续空格的情况,建议用正则匹配任意空白字符来拆分,适配更复杂的场景。
正确实现代码
import pandas as pd # 模拟你的原始数据 data = {'Code': [ '0.1.2 Contaminated land', '1.1.1 Standard foundations (default)', '1.1.2 Specialist foundations', '8.1.2 Preparatory groundworks' ]} df = pd.DataFrame(data) # 执行拆分:用正则匹配任意空白字符,只拆分1次,扩展为两列 df[['Column A', 'Column B']] = df['Code'].str.split('\s+', 1, expand=True) # 查看结果 print(df[['Column A', 'Column B']])
输出结果
| Column A | Column B |
|---|---|
| 0.1.2 | Contaminated land |
| 1.1.1 | Standard foundations (default) |
| 1.1.2 | Specialist foundations |
| 8.1.2 | Preparatory groundworks |
关键说明
- 必须严格匹配原数据的列名(
Code而非code) - 使用
\s+作为分隔符,可以匹配单个或多个连续空格,避免因格式不规范导致拆分失败 - 参数
1限制只拆分1次,确保描述部分的空格不会被错误拆分
内容的提问来源于stack exchange,提问作者Jimmy3421
相关产品推荐
相关产品推荐

