原因:在做資料清洗的時候,往往會遇到資料格式不一致的情況,因此需要資料轉換。
常見的資料轉換:
日期格式資料處理
字串資料處理
高階函式資料處理
sec_cars['boarding_time']=pd.to_datatime(sec_cars['boarding_time'])
sec_cars['diff_day']=pd.datatime.today-sec_cars['boarding_time']
sec_cars['boarding_time'].dt.year
sec_cars['diff_day']/pd.timedelta('1 hour')
timedelta.dt.days
import numpy as np
import pandas as pd
import os
os.chdir(r'你的路徑')
df=pd.read_csv('',encoding='utf-8',dtype=)
df.head(5)
df.info()
#轉換資料型別後
#即轉換為datatime64[ns]時間戳格式後就可以使用pd中的各種時間處理方法了
#para1:源資料;para:目的資料格式;paras:非源資料格式不會報錯;
df['buy_data']=pd.to_datatime(df['day'],format='%y%m%d',errors='coerce')
#轉換為datatime64[ns]時間戳格式後就可以使用dt提取日期了
df['buy_data'].dt.day或df['buy_data'].dt.year或df['buy_data'].dt.month
#計算時間差
pd['diff_day']=pd.datatimme.now()-df['buy_data']
#檢視結果
df.head(10)
0 1925 days 14:53:07.420000
#檢視資料格式
df.dtypes
#diff_day 為timedelta64[ns]格式即時間差格式
#加dt代表是日期格式的資料,使用dt方法提取days屬性
df['diff_day'].dt.days#提取天數1925
df['diff_day'].dt.seconds#提取秒 #將時分秒轉化為秒數14*3600+53*60+7=53587
df['diff_day'].dt.microseconds#提取納秒420000
df['diff_day'].head(4)
#將時間差轉化為天數
df['時間差']=df['diff_day']/pd.timedelta('1 d')
df['時間差'].head(5)
#將時間差轉化為小時
df['時間差']=df['diff_day']/pd.timedelta('1 h')
df['時間差'].head(5)
#將時間差轉化為分鐘
df['時間差']=df['diff_day']/pd.timedelta('1 m')
df['時間差'].head(5)
#將科學計數 轉化為小數字數計數
#2.333e+06轉化後2333000.111
df['時間差'].round(decimals=3)
#將時間差轉化為指定單位數值
df['diff_day'].astype('timedelta64[d]')#轉化為d:天;y:年;h:小時
Python日期轉換
python中時間日期格式化符號 y 兩位數的年份表示 00 99 y 四位數的年份表示 0000 9999 m 月份 01 12 d 月內中的一天 0 31 h 24小時制小時數 0 23 i 12小時制小時數 01 12 m 分鐘數 00 59 s 秒 00 59 a 本地簡化星期名稱 a 本地...
python 日期 格式轉換 英文 日期格式轉換
一 date型轉字串 filter date date,yyyymm filter date time,hh mm 在控制器中使用必須注入 filter 模組 scope.dt1 new date 控制器中使用 scope.dt2 filter date scope.dt1,yyyy mm dd h...
Python 日期型別轉換
從資料庫中查詢出的日期格式是 fri 12 jul 2019 00 00 00 gmt 需要轉換成 2019 07 12 d fri 12 jul 2019 00 00 00 gmt gmt format a d b y h m s gmt date1 datetime.datetime.strpt...