Pandas 使用参考日期将日期格式转换为整数

Pandas convert date format to an integer using a reference date

我正在尝试使用参考日期 01/10/2021 (0) 将日期格式的数据列转换为整数。例如,01/07/2021 等于 92,10/10/2021 等于 -9。

可以在 excel 中完成,但是 pandas 在尝试从参考日期中减去日期时会生成类型错误。

TypeError: unsupported operand type(s) for -: 'str' and 'str'

您需要先使用 pandas.to_datetime 将日期列从 str 转换为 datetime

这是一个例子:

import pandas as pd
d = pd.DataFrame({'date': ['01/10/2021', '01/07/2021', '10/10/2021']})
d['date'] = pd.to_datetime(d['date'], dayfirst=True)
d['date'][0] - d['date']

输出:

0    0 days
1   92 days
2   -9 days

IIUC,转换to_datetime and perform a subtraction with the reference timestamp. Then extract the days with dt.days:

df = pd.DataFrame({'date': ['01/07/2021', '01/10/2021', '10/10/2021']})

df['delta'] = (pd.to_datetime(df['date'], dayfirst=True)
                 .rsub(pd.to_datetime('01/10/2021', dayfirst=True))
                 .dt.days
              )

输出:

         date  delta
0  01/07/2021     92
1  01/10/2021      0
2  10/10/2021     -9