将字符串转换为pandas DataFrame中的日期时间(从周数/年转换为dd/mm/yy)



我有以下DataFrame

example = {"Time":["01/2021","02/2021","04/2021","05/2021"]}
df = pd.DataFrame( example )

Time
0   01/2021
1   02/2021
2   04/2021
3   05/2021

Timestring组成。每个string由周数(从1到52(和年份组成。

我想转换为dd/mm/yyyy

Time    Time Converted 
0   01/2021  10/01/2021
1   02/2021  17/01/2021
2   04/2021  24/01/2021
3   05/2021  31/01/2021
  1. 我该怎么做?

  2. 如果是星期一还是星期天,如何选择dd?如以下备选输出?

    Time    Time Converted 
    0    01/2021  04/01/2021
    1    02/2021  11/01/2021
    2    04/2021  18/01/2021
    3    05/2021  25/01/2021
    

我试图找到任何其他专门涉及周数的问题,但我找不到。

如果这是重复的,请告诉我:(

您可以使用pd.to_datetime:

df['Time Converted'] = pd.to_datetime('1/' + df['Time'], format='%w/%U/%Y')
print(df)
# Output
Time Time Converted
0  01/2021     2021-01-04
1  02/2021     2021-01-11
2  04/2021     2021-01-25
3  05/2021     2021-02-01
  • %w:工作日编号
  • %U:一年中的周数
  • %Y:年份

更新

我想要一周的最后一天,而不是周一。(例如,2021年1月10日,而不是2021年4月1日(。

df['Time Converted'] = pd.to_datetime('0/' + df['Time'], format='%w/%U/%Y') 
+ pd.DateOffset(days=7)
print(df)
# Output
Time Time Converted
0  01/2021     2021-01-10
1  02/2021     2021-01-17
2  04/2021     2021-01-31
3  05/2021     2021-02-07

注意:根据您的locale调整一周中的哪一天(0、1或6(。

相关内容

  • 没有找到相关文章

最新更新