最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pandas時(shí)間類型轉(zhuǎn)換與處理的實(shí)現(xiàn)示例

 更新時(shí)間:2022年07月29日 11:47:47   作者:山茶花開時(shí)。  
本文主要介紹了Pandas時(shí)間類型轉(zhuǎn)換與處理的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在平時(shí)的需求開發(fā)中,經(jīng)常涉及到利用Pandas處理日期相關(guān)類型字段的轉(zhuǎn)換和操作,為此特地記錄以下練習(xí)案例,幫助大家的同時(shí),也便于日后的學(xué)習(xí)和復(fù)盤

案例1

問題: 提取'W1|2022/7/28'字段中的年月日信息,取名為week_start,即一周開始的日期,并根據(jù)week_start計(jì)算出該周結(jié)束的具體日期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類型轉(zhuǎn)換成date類型(2022-07-28)
week_start = datetime.datetime.strptime(week_start, '%Y/%m/%d').date()
# 一周結(jié)束的日期(2022-08-03)
week_end = week_start + datetime.timedelta(days=6)

df1

案例2

問題: 根據(jù)'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

案例3

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

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

錯(cuò)誤寫法

# 運(yùn)行以下代碼會(huì)報(bào)錯(cuò)'str' object has no attribute 'strftime'
df3['new_wk'] = df3['Wk'].apply(lambda x:x.strftime("%Y%m%d"))

正確寫法

# 先利用.strptime()將str格式的變量轉(zhuǎn)化成datetime下的時(shí)間格式
# 然后再利用.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

案例4

問題:將'月/日/年 時(shí)間'格式的值轉(zhuǎn)換為'年月日'(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

# 將'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的數(shù)據(jù)記錄,取名為df4_na
df4_na = df4[df4['closure_date'].isin([0])]
# 篩選closure_date'字段中值不為0的數(shù)據(jù)記錄,取名為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

補(bǔ)充知識(shí)

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

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

new_t1

new_t2 

案例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

問題:日期型轉(zhuǎn)換為字符型

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

問題:文本型轉(zhuǎn)日期型

#文本型日期轉(zhuǎn)為日期型日期
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'],
                '城市':['蘭州','白銀','天水','武威','金昌','隴南','嘉峪關(guān)','酒泉','敦煌','甘南']})

df7

文本型轉(zhuǎn)為日期型可用datetime.strptime函數(shù) 

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

文本型轉(zhuǎn)為日期型也可用pd.to_datetime函數(shù)

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

處理過后的df7

案例8

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

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'],
                '城市':['蘭州','白銀','天水','武威','金昌','隴南','嘉峪關(guān)','酒泉','敦煌','甘南']})
 
df8['日期'] = df8['銷售日期'].map(lambda x:datetime.strptime(x,"%Y-%m-%d"))

df8 

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

處理后的df8

案例9

問題:借助offset時(shí)間偏移函數(shù)將日期加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'],
                '城市':['蘭州','白銀','天水','武威','金昌','隴南','嘉峪關(guān)','酒泉','敦煌','甘南']})
 
df9['日期'] = df9['銷售日期'].map(lambda x:datetime.strptime(x,"%Y-%m-%d"))

df9

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

處理后的df9

案例10

問題:將文本型日期轉(zhuǎn)換為日期型日期

#文本型日期轉(zhuǎn)為日期型日期
import pandas as pd
import datetime as dt
from datetime import datetime
df1=pd.DataFrame({'銷售時(shí)間':['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['銷售時(shí)間'].str.split(' ',expand=True)[0]
df1['日期_y']=pd.to_datetime(df1['銷售時(shí)間'],format='%Y-%m-%d')
df1

df10

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

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

處理后的df10

到此這篇關(guān)于Pandas時(shí)間類型轉(zhuǎn)換與處理的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Pandas時(shí)間類型轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python的類方法和靜態(tài)方法

    python的類方法和靜態(tài)方法

    這篇文章主要介紹了python的類方法和靜態(tài)方法,以實(shí)例形式分析了Python中類方法和靜態(tài)方法的實(shí)現(xiàn)技巧與應(yīng)用方法,需要的朋友可以參考下
    2014-12-12
  • 在centos7中分布式部署pyspider

    在centos7中分布式部署pyspider

    PySpider:一個(gè)國(guó)人編寫的強(qiáng)大的網(wǎng)絡(luò)爬蟲系統(tǒng)并帶有強(qiáng)大的WebUI。采用Python語言編寫,分布式架構(gòu),支持多種數(shù)據(jù)庫(kù)后端,強(qiáng)大的WebUI支持腳本編輯器,任務(wù)監(jiān)視器,項(xiàng)目管理器以及結(jié)果查看器。
    2017-05-05
  • 淺談解除裝飾器作用(python3新增)

    淺談解除裝飾器作用(python3新增)

    今天小編就為大家分享一篇淺談解除裝飾器作用(python3新增),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python實(shí)現(xiàn)小世界網(wǎng)絡(luò)生成

    python實(shí)現(xiàn)小世界網(wǎng)絡(luò)生成

    今天小編就為大家分享一篇python實(shí)現(xiàn)小世界網(wǎng)絡(luò)生成,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • tsv、csv、xls等文件類型區(qū)別及如何用python處理詳解

    tsv、csv、xls等文件類型區(qū)別及如何用python處理詳解

    近日在處理數(shù)據(jù)的時(shí)候發(fā)現(xiàn)有的文件為csv文件,有的為tsv文件,這篇文章主要給大家介紹了關(guān)于tsv、csv、xls等文件類型區(qū)別及如何用python處理的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • python3 如何使用 goto 跳轉(zhuǎn)執(zhí)行到指定代碼行

    python3 如何使用 goto 跳轉(zhuǎn)執(zhí)行到指定代碼行

    這篇文章主要介紹了python3 使用goto跳轉(zhuǎn)執(zhí)行到指定代碼行的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 詳解Python中enumerate函數(shù)的使用

    詳解Python中enumerate函數(shù)的使用

    Python?的?enumerate()?函數(shù)就像是一個(gè)神秘的黑箱,它具有非常有用的高級(jí)用法。本文就來為大家詳細(xì)講一下它的使用,需要的可以參考一下
    2022-08-08
  • TensorFlow查看輸入節(jié)點(diǎn)和輸出節(jié)點(diǎn)名稱方式

    TensorFlow查看輸入節(jié)點(diǎn)和輸出節(jié)點(diǎn)名稱方式

    今天小編就為大家分享一篇TensorFlow查看輸入節(jié)點(diǎn)和輸出節(jié)點(diǎn)名稱方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python使用wxPython和PyMuPDF實(shí)現(xiàn)合并PDF文檔

    Python使用wxPython和PyMuPDF實(shí)現(xiàn)合并PDF文檔

    處理大量的PDF文檔可能會(huì)變得復(fù)雜和耗時(shí),但是,使用Python編程和一些強(qiáng)大的庫(kù),可以使這個(gè)任務(wù)變得簡(jiǎn)單而高效,下面我們就來看看Python如何使用wxPython和PyMuPDF合并PDF文檔并自動(dòng)復(fù)制到剪貼板吧
    2023-11-11
  • python str轉(zhuǎn)json的具體步驟

    python str轉(zhuǎn)json的具體步驟

    使用Python內(nèi)置的json模塊,可以將str轉(zhuǎn)換為JSON,本文給大家介紹python str轉(zhuǎn)json的具體步驟,文中補(bǔ)充介紹了Python-字符串str和json格式的轉(zhuǎn)換問題,感興趣的朋友一起看看吧
    2024-01-01

最新評(píng)論

施甸县| 清丰县| 道孚县| 上蔡县| 大荔县| 清水河县| 岑巩县| 泰安市| 旬阳县| 穆棱市| 永福县| 沅江市| 蓬安县| 台前县| 南安市| 青州市| 南部县| 化州市| 涟源市| 衡阳县| 来宾市| 龙南县| 松江区| 安多县| 金门县| 定州市| 福贡县| 渑池县| 涿州市| 宜川县| 独山县| 资兴市| 胶州市| 临漳县| 加查县| 武安市| 合阳县| 青州市| 铜梁县| 吴忠市| 洪湖市|