如何在Python中将DataFrame的年份范围列拆分为单独列?
拆分Pandas DataFrame中的年份范围列
1. 构造示例数据
先还原你的数据集:
import pandas as pd data = { "Name": ["Andy", "Bruce"], "Years Range": ["1985 - 1987", "2011 - 2018"] } df = pd.DataFrame(data)
2. 拆分年份列
直接用Pandas的str.split()方法,指定分隔符为' - '(注意前后的空格),设置expand=True就能直接把拆分结果扩展为两列:
# 拆分并生成新列 df[["Year Start", "Year End"]] = df["Years Range"].str.split(' - ', expand=True)
如果你的数据里分隔符前后的空格不固定(比如有的是1985-1987,有的是1985 - 1987),可以用正则表达式匹配任意空格:
# 兼容任意空格的拆分方式 df[["Year Start", "Year End"]] = df["Years Range"].str.split(r'\s*-\s*', expand=True)
3. 可选:转换年份为数值类型
如果需要把年份从字符串转为整数(方便后续计算),执行这两步:
df["Year Start"] = df["Year Start"].astype(int) df["Year End"] = df["Year End"].astype(int)
最终结果
处理后的数据如下:
| Name | Years Range | Year Start | Year End |
|---|---|---|---|
| Andy | 1985 - 1987 | 1985 | 1987 |
| Bruce | 2011 - 2018 | 2011 | 2018 |
内容的提问来源于stack exchange,提问作者Rob
相关产品推荐
相关产品推荐

