如何用Pandas按条件拆分列:末尾含字母则拆分,否则第二列为空
Pandas DataFrame 列拆分解决方案
需求说明
对 Pandas DataFrame 指定列执行拆分逻辑:
- 若元素末尾包含任意字母,将字母作为第二列值,剩余部分作为第一列值
- 若元素末尾无字母,第二列值设为
None
示例数据
import pandas as pd data = pd.DataFrame({"data": ["0.00I", "0.01E", "99.99", "0.14F"]})
实现代码
利用正则表达式结合 str.extract 方法完成拆分:
# 提取数字部分和可选的末尾字母 data[['a', 'b']] = data['data'].str.extract(r'^(\d+\.\d+)([A-Za-z])?$') # 将空值替换为 None data['b'] = data['b'].where(data['b'].notna(), None) # 移除原始列(可选操作) data = data.drop('data', axis=1) print(data)
运行结果
a b 0 0.00 I 1 0.01 E 2 99.99 None 3 0.14 F
内容的提问来源于stack exchange,提问作者OSUDamian
相关产品推荐
相关产品推荐

