使用 Python 将季度转换为长日期

Lyn*_*ynn 1 python numpy pandas

我有一个数据集,我想将特定列中的值转换为长日期。长日期始终是该季度第一个月的第一天。

**Ex. Q122 = 1/1/2022,   Q222 = 4/1/2022,  Q322 = 7/1/2022,  Q422 = 10/1/2022**
Run Code Online (Sandbox Code Playgroud)

数据

ID   Date   Location

AA   Q123   NY
BB   Q425   CA
CC   Q226   NY
CC   Q326   NY
Run Code Online (Sandbox Code Playgroud)

期望的

ID   Date   Location   LongDate

AA   Q123   NY         1/1/2023
BB   Q425   CA         10/1/2025
CC   Q226   NY         4/1/2026
CC   Q326   NY         7/1/2026
Run Code Online (Sandbox Code Playgroud)

正在做

df['Date'] = pd.PeriodIndex(qs, freq='Q').to_timestamp()
Run Code Online (Sandbox Code Playgroud)

错误是无法解析。我认为这里必须进行初步转换。研究这个,任何建议都值得赞赏。

ank*_*_91 5

您可以反转模式:

pd.to_datetime(df['Date'].str[-2:]+df['Date'].str[:2]).dt.strftime('%m/%d/%Y')
Run Code Online (Sandbox Code Playgroud)
0    01/01/2023
1    10/01/2025
2    04/01/2026
3    07/01/2026
Name: Date, dtype: object
Run Code Online (Sandbox Code Playgroud)

请注意,.dt.strftime('%m/%d/%Y')仅当您希望它们作为字符串时才应使用。我建议你不要使用它们并让它成为日期