【发布时间】:2019-08-01 15:54:28
【问题描述】:
我无法弄清楚如何根据字符拆分数据框列并保留该字符串。以下是一些示例数据:
df = pd.DataFrame(
{"sexage" : ['m45', 'f43']}
)
我想要的是一个单独的列,其中包含男性/女性字母和一个单独的列,其中包含年龄。
当我执行df['sexage'].str.split('m|f', expand=True) 时,第一列中没有任何值。但是当我执行df['sexage'].str.split('(m|f)', expand=True) 时,我会得到一个我不想要的额外空白列。
我知道我可以使用 df['sexage'].str[0] 和 df['sexage'].str[1:] 按位置选择它们,但我想知道是否可以使用正则表达式来代替。
【问题讨论】:
-
df['sexage'].str.split('(?<=[mf])(?=\d)', expand=True)- 它适用于 Python 3.7+。否则,请尝试df['sexage'].str.extract(r'([mf])(\d+)', expand=True) -
df.sexage.str.extract('(?P<sexe>\D+)(?P<age>\d+)')
标签: python regex pandas character