亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

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 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號