为了账号安全,请及时绑定邮箱和手机立即绑定

更改多个日期列的日期格式的功能

更改多个日期列的日期格式的功能

BIG阳 2023-04-25 15:50:25
我有一个包含多种日期格式的大型数据框,我想清理此数据集,但我确实想知道是否可以找到此日期列并更改其格式,而无需一次覆盖一列。这就是我提取所有以前缀日期开头的列的方式date_df = df.loc[:,df.columns.str.startswith("date")] 然后从这里我写了一个函数来将日期格式从字符串更改为日期时间 YMD。from datetime import datetimedef date_fomated():dates = df.loc[:,date_df.columns.datetime.strftime('%m/%d/%Y')]return dates这没有用..我的预期结果是创建一个函数,该函数使用前缀“date”将这些多个日期列中的格式日期设置为 YMD 来对日期列进行子集化。这是一个要使用的小数据集import pandas as pddata = [['2020-06-24','2020-01-24'],['2020-05-04','2020-06-24'],['2018-11-24','2018-11-24'],['2018-11-24','2018-11-24']]df = pd.DataFrame(data,columns=['date_today','date_adm'],dtype=float)print (df)请协助
查看完整描述

2 回答

?
森林海

TA贡献2011条经验 获得超2个赞

请使用df.filter(like='date', axis=1)(包含“日期”)或df.filter(regex='^date', axis=1)(starts with date) and apply pd.to_datetime to thedf进行过滤


原始 df dtypes


 df.filter(like='date', axis=1).dtypes#filter columns that contain date and check their dtypes

    

    df.dtypes

    date_today    object

    date_adm      object

    dtype: object

解决方案


df.filter(like='date', axis=1).apply(lambda x: pd.to_datetime(x))

新数据类型


df.filter(like='date', axis=1).apply(lambda x: pd.to_datetime(x)).dtypes



df.dtypes

date_today    datetime64[ns]

date_adm      datetime64[ns]

dtype: object


查看完整回答
反对 回复 2023-04-25
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

让我们使用stack和filter


df = pd.DataFrame({'date1' : ['20200105','20210305'],

                  'date2' : [20200103, 20210309],

                  'id' : [0,1] })



      date1     date2  id

0  20200105  20200103   0

1  20210305  20210309   1



df.loc[:,df.filter(like='date').columns] = df.filter(like='date')\

                                                .stack()\

                                                .apply(pd.to_datetime,

                                                       format='%Y%m%d')\

                                                .unstack()

print(df)


       date1      date2  id

0 2020-01-05 2020-01-03   0

1 2021-03-05 2021-03-09   1


print(df.dtypes)


date1    datetime64[ns]

date2    datetime64[ns]

id                int64

dtype: object


查看完整回答
反对 回复 2023-04-25
  • 2 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信