pandas 我怎样在python中从一个列中提取年份.数据是这样的形式:“2020年10月1日(美国)”?

2sbarzqh  于 2023-01-07  发布在  Python
关注(0)|答案(2)|浏览(148)

我尝试应用一种不同的方法,但没有什么工作,因为我不能切片的文本,因为月份字段有可变长度。
我也尝试过切片和提取,但这会产生一个新的 Dataframe ,并使代码更长,因为我必须首先拆分列,提取年份,然后将值连接回 Dataframe 。

lnlaulya

lnlaulya1#

使用str.split()将其转换为一个列表,您可以从中获取年份并将其转换为int。

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
ibrsph3r

ibrsph3r2#

您也可以使用regex和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

我使用的正则表达式匹配与样本日期模式相似的值。如果它们的模式不同,我们可以使用更灵活的正则表达式。

相关问题