pandas 将年-周转换为星期- PYTHON

qgelzfjb  于 2023-01-11  发布在  Python
关注(0)|答案(2)|浏览(137)

我有以下数据:
| 年和周|年份|周|
| - ------| - ------| - ------|
| 二〇二二至五零年|小行星2022|五十|
| 二○二二年至五一年|小行星2022|五十一|
| 二○二二至五二年|小行星2022|五十二|
我想通过添加一个新列来反映一周的最后一天(星期日)和第一天(星期一)来转换这些信息,所以我的最终 Dataframe 应该如下所示:
| 年和周|年份|周|一周中的第一天|一周的最后一天|
| - ------| - ------| - ------| - ------| - ------|
| 二〇二二至五零年|小行星2022|五十|2022年12月12日|二○二二年十二月十八日|
| 二○二二年至五一年|小行星2022|五十一|二○二二年十二月十九日|二○二二年十二月二十五日|
| 二○二二至五二年|小行星2022|五十二|二○二二年十二月二十六日|2023年1月1日|

qybjjes1

qybjjes11#

我们可以使用pd.to_datetime并创建date基:

  • %W:一年中的周数
  • %Y:年份编号
  • %a:工作日,短版本
  • %b:月份名称的前三个字符
  • %d:一个月中的某天
df['Initial day of week'] = pd.to_datetime(
    df['Week'].astype(str) + df['Year'].astype(str) + 'Mon', format='%W%Y%a'
).dt.strftime("%d/%b/%Y")

df['Last day of week'] = pd.to_datetime(
    df['Week'].astype(str) + df['Year'].astype(str) + 'Sun', format='%W%Y%a'
).dt.strftime("%d/%b/%Y")

print(df)

输出:

Year&Week  Year  Week Initial day of week Last day of week
0   2022-50  2022    50         12/Dec/2022      18/Dec/2022
1   2022-51  2022    51         19/Dec/2022      25/Dec/2022
2   2022-52  2022    52         26/Dec/2022      01/Jan/2023
nzkunb0c

nzkunb0c2#

您可以使用python datetime模块将2022-50(可能是“%Y%W”格式)转换为M/d/y,如以下代码和平:

from datetime import datetime

input_date = "2022-50"
right_date = datetime.strptime(input_date, "%Y-%W")   
formate_date_reult = right_date.strftime("%m/%d/%Y")

print(formate_date_reult) # Output is: 12/25/2022

相关问题