本次內(nèi)容用到的python編輯器是anconda
下的jupyter notebook
所以在本次內(nèi)容開(kāi)始之前給大家介紹如何在Windows下加載jupyter notebook
進(jìn)行python的調(diào)試~~~~
1忧饭、什么是Jupyter Notebook
Jupyter Notebook
,又稱為IPython notebook,是一個(gè)交互式筆記本视卢,支持運(yùn)行40+種編程語(yǔ)言,可以用來(lái)編寫(xiě)漂亮的交互式文檔嘉裤。
你要向別人解釋你的程序郑临, 你可能要新建一個(gè)word,把代碼復(fù)制進(jìn)去屑宠, 對(duì)每塊代碼進(jìn)行講解厢洞。 這樣會(huì)有幾個(gè)問(wèn)題:
- 代碼格式不好看;
- 代碼的配色丟失典奉;
- 代碼與文字解釋部分區(qū)分不明顯躺翻。
使用Jupyter Notebook,可以讓代碼保持其在編輯器里面的格式卫玖,看起來(lái)很正規(guī)公你。 而且, 復(fù)制進(jìn)去的代碼是可以運(yùn)行的假瞬。
敲擊完代碼之后陕靠,按Shift+Enter
, 或者上面的Run Cell鍵
變可以得到代碼運(yùn)行結(jié)果脱茉。
2懦傍、 Windows下安裝及使用Jupyter Notebook
2.1 安裝Jupyter Notebook
打開(kāi)windows命令窗口cmd
,在沒(méi)有安裝Jupyter Notebook
芦劣,在命令行輸入Jupyter Notebook
會(huì)報(bào)錯(cuò)粗俱,如下:
輸入如下命令,下載
jupyter notebook
經(jīng)過(guò)一段時(shí)間后會(huì)顯示下載成功虚吟,如下:
打開(kāi)windows命令窗口cmd寸认,輸入命令打開(kāi)jupyter notebook
待以上保持不動(dòng)后,瀏覽器就會(huì)打開(kāi)一個(gè)頁(yè)面串慰,如下圖:
此時(shí)偏塞,我們就在這里創(chuàng)建文件,編寫(xiě)我們的代碼
注意:我們打開(kāi)的windows命令窗口cmd不要關(guān)閉哦邦鲫!
2.2 創(chuàng)建ipynb文件
- 選擇右上角的new灸叼,選擇python3
- 進(jìn)入代碼編寫(xiě)環(huán)境,如下圖:
3庆捺、利用pd的date_range生成日期數(shù)據(jù)
import pandas as pd
pd.date_range( )
同生成隨機(jī)數(shù)的思想類似古今,使用pandas庫(kù)中的函數(shù)
pd.date_range(start=None,end=None滔以,periods=None捉腥,freq=None,tz=None你画,normalize=False抵碟,name=None桃漾,close=None,**kwargs)
3.1 設(shè)定開(kāi)始時(shí)間拟逮、長(zhǎng)度撬统、頻率
start_date='20210101'
length=10
date_1=pd.date_range(start=start_date,periods=10).tolist() #默認(rèn)freq為D,每天
date_1
也可以設(shè)置頻率freq=‘M'
date_1=pd.date_range(start=start_date,periods=10,freq='M')
date_1
3.2 設(shè)定起始敦迄、終止時(shí)間宪摧、頻率
start_date='20210101'
end_date='20210110'
date_2=pd.date_range(start=start_date,end=end_date,freq='D') #默認(rèn)為D
date_2
頻率freq的設(shè)置有:
D --- Day --- 每日
B --- BusinessDay --- 每工作日
H --- Hour --- 每小時(shí)
T/min --- Minute ---每分鐘
S --- Second --- 每秒
M --- MonthEnd --- 每月最后一個(gè)日歷日
Q --- Quater --- 每季度
注意上面生成的日期數(shù)據(jù),就是list格式颅崩,在構(gòu)建數(shù)據(jù)框時(shí)可以直接用。
pd.DataFrame({'Time':date_1})
4蕊苗、字符串轉(zhuǎn)化為日期
導(dǎo)入數(shù)據(jù)時(shí)常會(huì)出現(xiàn)沿后,日期型數(shù)據(jù)導(dǎo)入后,變成字符串格式朽砰,在后續(xù)使用時(shí)尖滚,需要轉(zhuǎn)化為日期。
構(gòu)造一個(gè)時(shí)間數(shù)據(jù)
import numpy as np
start_date='20210613'
gap=100
date_list1=pd.date_range(start=start_date,periods=gap).strftime('%Y%m%d').tolist()
print(date_list1[1:10])
print(len(date_list1))
num1=np.random.randint(1,101,100) #生成1-101的隨機(jī)整數(shù)
num2=np.random.randint(100,201,100)
df_temp=pd.DataFrame({'Time':date_list1,
'Number1':num1,
'Number2':num2})
df_temp.head()
上面數(shù)據(jù)構(gòu)造時(shí)瞧柔,為了方便之后舉例子漆弄,將生成的時(shí)間數(shù)據(jù)轉(zhuǎn)化為字符串后,構(gòu)造的數(shù)據(jù)框造锅。
4.1 pd.to_datetime()
print(df_temp['Time'].dtype)
print(pd.to_datetime(df_temp['Time']).dtype)
輸出:
object
datetime64[ns]
pd.datetime這個(gè)函數(shù)可以直接作用在數(shù)據(jù)框的列上面撼唾,直接轉(zhuǎn)換。
4.2 datetime.strptime
注意區(qū)分:
from datetime import datetime
datetime.strftime() #由日期格式轉(zhuǎn)化為字符串
datetime.strptime() #由字符串格式轉(zhuǎn)化為日期
例子:
from datetime import datetime
print(datetime.strptime('20210101','%Y%m%d'))
print(datetime.strptime('2021-01-01','%Y-%m-%d'))
但是這個(gè)函數(shù)只能作用一個(gè)值哥蔚,如果對(duì)數(shù)據(jù)框的列進(jìn)行操作倒谷,需要首先定義一個(gè)函數(shù):
from datetime import datetime
def date_ch(value):
return datetime.strptime(value,'%Y%m%d')
print(date_ch('20210613'))
df_temp['Time']=df_temp['Time'].apply(date_ch)
df_temp['Time']
5、從日期數(shù)據(jù)中提取成分
5.1 直接提取:
pd.to_datetime('20210613').month
#year:日
#month:月
#week:周
#day:日
5.2 使用strftime函數(shù):
pd.to_datetime('20210613').strftime('%Y-%m')
5.3 字符串切片截取
數(shù)據(jù)如下:
def date_ch(value):
str_value=value.strftime('%Y-%m-%d')
month=str_value[5:7]
return month
df_temp['Time'].apply(date_ch)
#或者
#df_temp['Time'].apply(lambda x:date_ch(x))
strftime函數(shù)提取日期成分中糙箍,日期的標(biāo)準(zhǔn)化格式符號(hào):
%a 星期的簡(jiǎn)寫(xiě)渤愁。如 星期三為Web
%A 星期的全寫(xiě)。如 星期三為Wednesday
%b 月份的簡(jiǎn)寫(xiě)深夯。如4月份為Apr
%B 月份的全寫(xiě)抖格。如4月份為April
%c: 日期時(shí)間的字符串表示。(如: 05/01/10 09:00:20)
%d: 日在這個(gè)月中的天數(shù)
%f: 微秒(范圍[0,999999])
%H: 小時(shí)(24小時(shí)制咕晋,[0, 23])
%I: 小時(shí)(12小時(shí)制雹拄,[0, 11])
%j: 日在年中的天數(shù) [001,366]
%m: 月份([01,12])
%M: 分鐘([00,59])
%p: AM或者PM
%S: 秒(范圍為[00,61])
%U: 周在當(dāng)年的周數(shù)當(dāng)年的第幾周),星期天作為周的第一天
%w: 今天在這周的天數(shù)掌呜,范圍為[0, 6]办桨,6表示星期天
%W: 周在當(dāng)年的周數(shù),星期一作為周的第一天
%x: 日期字符串(如:05/01/20)
%X: 時(shí)間字符串(如:09:00:20)
%y: 2個(gè)數(shù)字表示的年份
%Y: 4個(gè)數(shù)字表示的年份
%z: 與utc時(shí)間的間隔 (如果是本地時(shí)間站辉,返回空字符串)
%Z: 時(shí)區(qū)名稱(如果是本地時(shí)間呢撞,返回空字符串)
6损姜、python將任何格式的時(shí)間字符串轉(zhuǎn)換為datetime
首先利用pip下載python資源包:pip install python-dateutil
from dateutil.parser import parse
date_string_array = [
'2021-06-13 08:15:27.243860',
'Jun 13 2021 7:40AM',
'Jun 13 2021 at 7:40AM',
'September 20, 2020, 22:19:55',
'Sun, 05/12/1999, 12:30PM',
'Mon, 21 March, 2015',
'2018-03-12T10:12:45Z',
'2018-06-29 17:08:00.586525+00:00',
'2018-06-29 17:08:00.586525+05:00',
'Tuesday , 6th September, 2017 at 4:30pm'
]
for date in date_string_array:
print('Parsing: ' + date)
dt = parse(date) # 時(shí)間轉(zhuǎn)換
print(dt.date())
print(dt.time())
print(dt.tzinfo)
print('\n')
7、「?? 感謝大家」
- 點(diǎn)贊支持下吧殊霞,讓更多的人也能看到這篇內(nèi)容(收藏不點(diǎn)贊摧阅,都是耍流氓 -_-)
- 歡迎在留言區(qū)與我分享你的想法,也歡迎你在留言區(qū)記錄你的思考過(guò)程