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

标签 python pandas date datetime date-formatting

我有以下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组成。 每个字符串由周数(从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:年份

更新

I would like to get the last day of the week and not Monday. (e.g. 10/01/2021 instead of 04/01/2021).

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

注意:根据您的区域设置调整星期几(0、1 或 6)。

关于python - 将 pandas DataFrame 中的字符串转换为日期时间(从周数/年转换为 dd/mm/yy),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71254846/

相关文章:

python - 如何在 python 中反转嵌套列表中的字符串列表?

python - Pandas - 比较两个 Csv 数据帧,但一个 csv 有问题

javascript - 这个javascript日期函数会失败吗?

java - 使用循环更新 Excel 文件

date - 带有 case 语句的 Hive 查询

python - Django AllAuth 不扩展 'base.html' ,尽管模板中存在 base.html

python - 如何使用 update 合并两个查询的结果

python - 使用 Numpy 加载文本时出现内存错误

python - Pandas 数据系列 - 如何解决天数差异

python - 将 Dataframe 列中的列表拆分为特定的列名称