亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Pandas時間類型轉換與處理如何實現

發布時間:2022-07-29 13:55:24 來源:億速云 閱讀:145 作者:iii 欄目:開發技術

這篇文章主要介紹“Pandas時間類型轉換與處理如何實現”,在日常操作中,相信很多人在Pandas時間類型轉換與處理如何實現問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Pandas時間類型轉換與處理如何實現”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

案例1

問題: 提取'W1|2022/7/28'字段中的年月日信息,取名為week_start,即一周開始的日期,并根據week_start計算出該周結束的具體日期week_end

import pandas as pd
import datetime
df1 = pd.DataFrame([[6,3],[6,3]], columns = ['Working day','W1|2022/7/28'])
# 一周開始的日期
# '2022/7/28'——>str類型
week_start = df1.columns[1].split('|')[1]
# 將start_day類型轉換成date類型(2022-07-28)
week_start = datetime.datetime.strptime(week_start, '%Y/%m/%d').date()
# 一周結束的日期(2022-08-03)
week_end = week_start + datetime.timedelta(days=6)

df1

Pandas時間類型轉換與處理如何實現

案例2

問題: 根據'Date'字段生成'Date - 2'字段

import pandas as pd
from datetime import timedelta
from datetime import datetime
 
df2 = pd.DataFrame([[1,'20191031'],
                   [2,'20191106'],
                   [3,'20191106']],columns=['Id','Date'])
# 'Date'字段中的值減去2天,生成'Date - 2'字段
df2['Date - 2'] = df2['Date'].apply(lambda x:(datetime.strptime(x,'%Y%m%d') - timedelta(days=datetime.strptime(x,'%Y%m%d').weekday())).strftime("%Y%m%d"))

df2

Pandas時間類型轉換與處理如何實現

案例3

問題:從字符串表示的日期時間中僅獲取“年/月/日” 

import pandas as pd
from datetime import datetime
 
df3 = pd.DataFrame([[1,'2017-01-02 00:00:00'],
                   [2,'2017-01-09 00:00:00']
                   ],columns = ['Id','Wk'])

df3

Pandas時間類型轉換與處理如何實現

錯誤寫法

# 運行以下代碼會報錯'str' object has no attribute 'strftime'
df3['new_wk'] = df3['Wk'].apply(lambda x:x.strftime("%Y%m%d"))

正確寫法

# 先利用.strptime()將str格式的變量轉化成datetime下的時間格式
# 然后再利用.strftime()獲取“年/月/日”
df3['Wk'] = df3['Wk'].apply(lambda x:datetime.strptime(x,"%Y-%m-%d %H:%M:%S"))
df3['new_Wk'] = df3['Wk'].apply(lambda x:x.strftime("%Y/%m/%d"))

處理過后的df3

Pandas時間類型轉換與處理如何實現

案例4

問題:將'月/日/年 時間'格式的值轉換為'年月日'(10/11/19 05:28:27 => 20191011)

import pandas as pd
 
df4 = pd.DataFrame([['A','10/11/19 05:28:27','08/04/20 08:38:59'],
                   ['B','10/11/19 05:28:27',None],
                   ['C','10/11/19 05:28:27',None]
                  ],columns = ['site','creation_date','closure_date'])

df4

Pandas時間類型轉換與處理如何實現

# 將'creation_date'欄位的值變形
# 10/11/19 05:28:27 => 20191011
df4['creation_date'] = df4['creation_date'].apply(lambda x:pd.to_datetime(x).strftime("%Y%m%d"))
 
# 將'closure_date'字段中nan值填充為0
df4['closure_date'] = df4['closure_date'].fillna(0)
# 篩選closure_date'字段中值為0的數據記錄,取名為df4_na
df4_na = df4[df4['closure_date'].isin([0])]
# 篩選closure_date'字段中值不為0的數據記錄,取名為df4
df4 = df4[~df4['closure_date'].isin([0])]
 
# 將'closure_date'欄位的值變形
# 08/04/20 08:38:59 => 20200804
df4['closure_date'] = df4['closure_date'].apply(lambda x:pd.to_datetime(x).strftime("%Y%m%d"))
 
df4 = pd.concat([df4, df4_na], ignore_index = True)

 處理過后的df4

Pandas時間類型轉換與處理如何實現

補充知識

我們通常使用pd.to_datetime()和s.astype('datetime64[ns]')來做時間類型轉換

import pandas as pd
 
t = pd.Series(['20220720','20220724'])
# dtype: datetime64[ns]
new_t1 = pd.to_datetime(t)
new_t2 = t.astype('datetime64[ns]')

t

Pandas時間類型轉換與處理如何實現

new_t1

Pandas時間類型轉換與處理如何實現

new_t2 

Pandas時間類型轉換與處理如何實現

案例5

問題: 添加字段'Week',逐行遞增

import pandas as pd
 
df5 = pd.DataFrame(columns=['Week','Materials'])
all_material = ['A32456','B78495']
 
for row in range(0,3):
    week = row + 1
    datas = [week, all_material]
    df5.loc[row] = datas
'''
df5:
 
  Week         Materials
0    1  [A32456, B78495]
1    2  [A32456, B78495]
2    3  [A32456, B78495]
'''
print(df5)

案例6

問題:日期型轉換為字符型

import datetime
today = datetime.date.today() # date類型 2022-07-28
today.strftime('%Y-%m-%d') # '2022-07-28'
import datetime
dt = datetime.datetime.now() # datetime類型 2022-07-28 22:46:20.528813
dt.strftime('%Y-%m-%d') # '2022-07-28'
import datetime
today = str(datetime.date.today()) # str類型 2022-07-28
today.replace("-","") # '20220728'

案例7

問題:文本型轉日期型

#文本型日期轉為日期型日期
import pandas as pd
from datetime import datetime
df7=pd.DataFrame({'銷售日期':['2022-05-01','2022-05-02','2022-05-03','2022-05-04','2022-05-05','2022-05-06','2022-05-07','2022-05-08','2022-05-09','2022-05-10'],
                '城市':['蘭州','白銀','天水','武威','金昌','隴南','嘉峪關','酒泉','敦煌','甘南']})

df7

Pandas時間類型轉換與處理如何實現

文本型轉為日期型可用datetime.strptime函數 

# "%Y-%m-%d"表示將文本日期解析為年月日的日期格式
df7['日期'] = df7['銷售日期'].map(lambda x:datetime.strptime(x,"%Y-%m-%d"))

文本型轉為日期型也可用pd.to_datetime函數

# "%Y-%m-%d"表示將文本日期解析為年月日的日期格式
df7['日期'] = pd.to_datetime(df7['銷售日期'],format='%Y-%m-%d')

處理過后的df7

Pandas時間類型轉換與處理如何實現

案例8

問題:提取日期字段的年份、月份、日份和周數

import pandas as pd
from datetime import datetime
df8=pd.DataFrame({'銷售日期':['2022-05-01','2022-05-02','2022-05-03','2022-05-04','2022-05-05','2022-05-06','2022-05-07','2022-05-08','2022-05-09','2022-05-10'],
                '城市':['蘭州','白銀','天水','武威','金昌','隴南','嘉峪關','酒泉','敦煌','甘南']})
 
df8['日期'] = df8['銷售日期'].map(lambda x:datetime.strptime(x,"%Y-%m-%d"))

df8 

Pandas時間類型轉換與處理如何實現

#由日期數據提取年
df8['年份'] = df8['日期'].apply(lambda x: x.year)
df8['年份'] =df8['年份'].astype(str)+'年'
 
#由日期數據提取月
df8['月份'] = df8['日期'].apply(lambda x: x.month)
df8['月份'] =df8['月份'].astype(str)+'月'
 
#由日期數據提取日
df8['日份'] = df8['日期'].apply(lambda x: x.day)
df8['日份'] =df8['日份'].astype(str)+'日'
 
# 日期中的周使用date.isocalendar()[1]提取
#根據日期返回周數,以周一為第一天開始
df8['周數'] = [date.isocalendar()[1] for date in df8['日期'].tolist()]
df8['周數'] = df8['周數'].astype(str)+'周'

處理后的df8

Pandas時間類型轉換與處理如何實現

案例9

問題:借助offset時間偏移函數將日期加3天 

import pandas as pd
from datetime import datetime
df9=pd.DataFrame({'銷售日期':['2022-05-01','2022-05-02','2022-05-03','2022-05-04','2022-05-05','2022-05-06','2022-05-07','2022-05-08','2022-05-09','2022-05-10'],
                '城市':['蘭州','白銀','天水','武威','金昌','隴南','嘉峪關','酒泉','敦煌','甘南']})
 
df9['日期'] = df9['銷售日期'].map(lambda x:datetime.strptime(x,"%Y-%m-%d"))

df9

Pandas時間類型轉換與處理如何實現

#借助offset時間偏移函數將日期加3天
from pandas.tseries.offsets import Day
df9['日期_3']=df9['日期']+Day(3)

處理后的df9

Pandas時間類型轉換與處理如何實現

案例10

問題:將文本型日期轉換為日期型日期

#文本型日期轉為日期型日期
import pandas as pd
import datetime as dt
from datetime import datetime
df1=pd.DataFrame({'銷售時間':['2022-05-01 00:00:00','2022-05-02 00:00:00','2022-05-03 00:00:00','2022-05-04 00:00:00','2022-05-05 00:00:00',
                         '2022-05-06 00:00:00','2022-05-07 00:00:00','2022-05-08 00:00:00','2022-05-09 00:00:00','2022-05-10 00:00:00',]})
#df['日期']=df['銷售日期'].map(lambda x:datetime.strptime(x,"%Y-%m-%d"))
df1['日期_x']=df1['銷售時間'].str.split(' ',expand=True)[0]
df1['日期_y']=pd.to_datetime(df1['銷售時間'],format='%Y-%m-%d')
df1

df10

Pandas時間類型轉換與處理如何實現

日期中帶有時分秒'00:00:00',有如下方法將其處理為'%Y-%m-%d'形式

df10['日期']=df10['銷售時間'].str.split(' ',expand=True)[0]

處理后的df10

Pandas時間類型轉換與處理如何實現

到此,關于“Pandas時間類型轉換與處理如何實現”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屏南县| 公主岭市| 淮北市| 庆云县| 双峰县| 绩溪县| 中阳县| 枝江市| 尼木县| 肇源县| 神农架林区| 富蕴县| 涞源县| 宿州市| 天门市| 松潘县| 湄潭县| 宜兰市| 葵青区| 台南市| 宜川县| 合水县| 内江市| 和平县| 伊川县| 罗田县| 衡水市| 子洲县| 云浮市| 依安县| 都江堰市| 岳阳县| 平山县| 民和| 华坪县| 海宁市| 乌什县| 丽水市| 永昌县| 兴山县| 江津市|