我尝试应用一种不同的方法,但没有什么工作,因为我不能切片的文本,因为月份字段有可变长度。我也尝试过切片和提取,但这会产生一个新的 Dataframe ,并使代码更长,因为我必须首先拆分列,提取年份,然后将值连接回 Dataframe 。
lnlaulya1#
使用str.split()将其转换为一个列表,您可以从中获取年份并将其转换为int。
str.split()
df = pd.DataFrame({'date': ['October 1 2022 (United States)']}) df['year'] = int(df['date'].str.split()[0][2])
输出:
date year October 1 2022 (United States) 2022
ibrsph3r2#
您也可以使用regex和pd.Series.str.extract:
pd.Series.str.extract
df['year'] = df['date'].str.extract(r'(?P<Year>\d{4}(?=(?:\s+\()))') df date year 0 October 1 2022 (United States) 2022
我使用的正则表达式匹配与样本日期模式相似的值。如果它们的模式不同,我们可以使用更灵活的正则表达式。
2条答案
按热度按时间lnlaulya1#
使用
str.split()
将其转换为一个列表,您可以从中获取年份并将其转换为int。输出:
ibrsph3r2#
您也可以使用regex和
pd.Series.str.extract
:我使用的正则表达式匹配与样本日期模式相似的值。如果它们的模式不同,我们可以使用更灵活的正则表达式。