如何用Pandas提取列中'-'后内容?实现类似SAS scan的列调整
Python实现类似SAS scan函数的数据集处理需求
当然可以实现,Python中处理这类字符串提取和列操作,用pandas的字符串方法就能达到类似SAS scan函数的效果,以下是具体实现步骤:
步骤1:构造示例数据集
先模拟你描述的数据集:
import pandas as pd data = { 'Column A': ['001-3', '002-14'], 'Column B': [5, 6] } df = pd.DataFrame(data)
步骤2:将原Column B内容移至Column C
直接赋值即可:
df['Column C'] = df['Column B']
步骤3:从Column A提取'-'后的内容填充Column B
这里有两种常用方法,都能实现类似SAS scan函数按分隔符提取指定位置内容的效果:
方法一:使用str.split拆分字符串
str.split('-')会把字符串按'-'拆分成列表,取索引1的元素(对应分隔符后的内容):
df['Column B'] = df['Column A'].str.split('-').str[1]
方法二:使用str.extract正则提取
通过正则表达式匹配'-'后的所有字符,适合更复杂的匹配场景:
df['Column B'] = df['Column A'].str.extract(r'-(.*)$')
最终结果
执行完上述代码后,数据集会变成:
| Column A | Column B | Column C |
|---|---|---|
| 001-3 | 3 | 5 |
| 002-14 | 14 | 6 |
内容的提问来源于stack exchange,提问作者guokelsey
相关产品推荐
相关产品推荐

