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)
错误是无法解析。我认为这里必须进行初步转换。研究这个,任何建议都值得赞赏。
您可以反转模式:
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')仅当您希望它们作为字符串时才应使用。我建议你不要使用它们并让它成为日期