【发布时间】:2023-01-12 16:53:09
【问题描述】:
我有一个数据,其中包含带有日期的列:
col_1 col_2
'may 2021 - 2023' 'nov 2020 - feb 2021'
'jan 2022 - 2023' 'sep 2021- 2023'
使用下面的代码我可以创建所需的输出,但我希望创建一个可以将数据帧作为输入的函数来产生预期的输出:
s = df['col_1'].str.split(r'\s*-\s*')
df['year_1'] = (pd
.to_datetime(s.str[1])
.sub(pd.to_datetime(s.str[0])))
t = df['col_2'].str.split(r'\s*-\s*')
df['year_2'] = (pd
.to_datetime(t.str[1])
.sub(pd.to_datetime(t.str[0])))
要准备以下输出,我需要重新运行代码并更改变量。正如所解释的我需要做一个功能.请注意,列数可以更多,因此代码应该可以正常工作
预期产出
col_1 Year_1 col_2 Year_2
'may 2021 - 2023' 610 days 'sep 2017-dec 2017' 91 days
'jan 2022 - 2023' 365 days 'sep 2021- 2023' 487 days
【问题讨论】: