【发布时间】:2021-12-14 18:55:36
【问题描述】:
我正在尝试在 Pandas 中使用 ID 如下的列:
AB.156483.15645431.1561313513
CD.15615a.4651d15351.1512.1.21
我想创建一个新列,返回所有直到但不包括第二个期间的内容。
AB.156483.15645431
CD.15615a.4651d15351
我试过了:
pattern = r'([^.]*,[^,]*)'
df['test'] = df.ID.str.extract(pattern, expand=False)
并接收不可调用的字符串方法
我还尝试将单元格拆分为单元格内的列表,然后将列表转回字符串并使用列表理解重新插入句点:
df['test'] = ' '.join([str(item+'.') for item in [df.ID.str.split('.').str[0:3]]])
【问题讨论】:
-
错字:您的
pattern有逗号,应该有句点。 -
你不需要正则表达式。简单的字符串方法就可以了。像这样:
'.'.join(s.split('.')[:3]),其中s是列的内容。