pandas 如何修改日期值,只保留月份值

x759pob2  于 2023-01-19  发布在  其他
关注(0)|答案(4)|浏览(133)

我有一个 Dataframe ,您可以通过运行以下命令获得它:

import pandas as pd
from io import StringIO
    
df = """  
           case_id    scheduled_date        code
           1213       2021-08-17            1
           3444       2021-06-24            3
           4566       2021-07-20            5
          
    """
df= pd.read_csv(StringIO(df.strip()), sep='\s\s+', engine='python')

如何将scheduled_date更改为只保留年份和月份?输出应为:

case_id   scheduled_date  code
0   1213    2021-08         1
1   3444    2021-06         3
2   4566    2021-07         5
ctehm74n

ctehm74n1#

你也可以试试这个:

df['scheduled_date'] = pd.to_datetime(df.scheduled_date, format='%Y-%m-%d').dt.strftime('%Y-%m')

   case_id scheduled_date  code
0     1213        2021-08     1
1     3444        2021-06     3
2     4566        2021-07     5
1dkrff03

1dkrff032#

您可以使用字符串解析来删除日期(我假设您需要字符串,因为预期输出中没有日期):

df["scheduled_date"].str.split("-").str[:2].str.join("-").astype(str)

这将输出:

case_id scheduled_date  code
0     1213        2021-08     1
1     3444        2021-06     3
2     4566        2021-07     5
tsm1rwdh

tsm1rwdh3#

将日期转换为datetime并以这种方式访问月份

df['month'] = pd.to_datetime(df['scheduled_date']).dt.to_period('M')

   case_id scheduled_date  code    month
0     1213     2021-08-17     1  2021-08
1     3444     2021-06-24     3  2021-06
2     4566     2021-07-20     5  2021-07

请注意,dtype为period[M],而不是使用此方法的对象。

31moq8wy

31moq8wy4#

首先,将字符串列转换为日期时间列,然后可以应用许多不同的日期操作。
供参考:我从这个帖子中得知了答案-Drop the year from "Year-month-date" format in a pandas dataframe

# converting to datetime: 
df['scheduled_date'] = pd.to_datetime(df['scheduled_date'])

# converting the datetime column to desired output
df['scheduled_date'] = df['scheduled_date'].dt.strftime('%y-%m ')

样本输出:

相关问题