數(shù)據(jù)分析需掌握的基礎(chǔ)知識
- 1、Python 常用數(shù)據(jù)類型
- 2先口、字符串常用模塊型奥、函數(shù)和操作
- 3、日期
- 4池充、Python基本數(shù)據(jù)結(jié)構(gòu)
- 5桩引、控制流
- 6缎讼、自定義函數(shù)
1收夸、Python 常用數(shù)據(jù)類型
四種基本數(shù)據(jù)類型
數(shù)據(jù)類型 | 英文 | 舉例 |
---|---|---|
整數(shù) | Integer | i=1 |
浮點數(shù) | Floats | n=1.23 |
字符串 | String | str='你好' |
布爾類型 | Booleans | b=True |
type()函數(shù)
type函數(shù)可以查看變量的數(shù)據(jù)類型,示例如下:
i=1
n=1.23
str='你好'
b=True
print(type(i))
print(type(n))
print(type(str))
print(type(True))
輸出結(jié)果為:
2、字符串常用模塊血崭、函數(shù)和操作
使用引號包含字符串
使用符號 | 輸出效果 |
---|---|
單個引號('') | 輸出引號內(nèi)的字符 |
3個引號(''') | 允許字符串跨多行卧惜,所見即所得格式 |
示例如下:
var1 = 'Hello World!'
var2='''hello
world!
'''
print(var1)
print('----------')
print(var2)
輸出結(jié)果為:
字符串轉(zhuǎn)義字符反斜杠(\)
在字符串中使用特殊字符,用反斜杠轉(zhuǎn)義
常用轉(zhuǎn)義字符 | 描述 |
---|---|
(在行末尾) | 續(xù)行符 |
\ | 反斜杠符號 |
' | 單引號 |
" | 雙引號 |
\n | 換行 |
\r | 回車 |
字符串運算
a='Hello',b='World'
操作符 | 描述 | 示例 |
---|---|---|
+ | 字符串連接 | a+b 輸出 HelloWorld |
* | 重復(fù)輸出字符串 | a*2 輸出 HelloHello |
[] | 通過索引獲取字符串中的字符 | a[1] 輸出e |
[:] | 截取字符串的一部分夹纫,左閉右開 ,從0開始 | a[1:4]輸出 ell |
示例如下:
a='Hello'
b='World'
print("a + b 輸出結(jié)果:", a + b)
print("a * 2 輸出結(jié)果:", a * 2)
print("a[1] 輸出結(jié)果:", a[1])
print("a[1:4] 輸出結(jié)果:", a[1:4])
輸出結(jié)果為:
字符串處理標(biāo)準(zhǔn)庫String常用函數(shù)
函數(shù) | 描述 | 方法 |
---|---|---|
split | 將一個字符串拆分成一個子字符串列表 | split('str',num),使用str字符進(jìn)行拆分咽瓷,,截取num+1個子字符串 |
join | 將序列中的元素以指定的字符連接生成新的字符串 | str.join(seq),seq為要連接的元素序列舰讹,以指定字符串str作為分隔符茅姜,將seq中所有的元素合并為一個新的字符串 |
strip | 截取字符串的空格或指定字符 | lstrip()截取左側(cè)字符,rstrip()截取右側(cè)字符,strip()截取兩側(cè)字符。str.lstrip([chars]) |
replace | 將字符串中的一個或一組字符替換為另一個或一組字符 | str.replace(old,new,max),max替換不超過max次 |
lower | 將字符串中的所有大寫字符轉(zhuǎn)換為小寫字符 | str.lower() |
upper | 將字符串中的所有小寫字符轉(zhuǎn)換為大寫字符 | str.upper() |
capitalize | 將字符串中的第一個字母變成大寫 | str.capitalize() |
len | 返回對象(字符月匣、列表钻洒、元祖)等的長度或項目個數(shù) | len(s),s為對象 |
示例如下:
print('--------split示例---------')
a='My name is lily'
a1=a.split(' ',2)
print(a1)
print('\n')
print('--------join示例----------')
str = "-"
seq = ("a", "b", "c")
print (str.join( seq ))
print('\n')
print('--------strip示例----------')
str = " Hello World!!! "
print( str.lstrip() )
print( str.rstrip() )
print( str.strip() )
str = "88888888Hello World!!!8888888"
print( str.lstrip('8') )
print( str.rstrip('8') )
print( str.strip('8') )
print('\n')
print('--------replace示例----------')
str = "this is string example....wow!!!this is string example....wow!!!"
print (str.replace("is", "was",3))
print('\n')
print('--------lower,upper,capitalize奋姿,len示例----------')
str='hello World'
print('lower:'+str.lower())
print('upper:'+str.upper())
print('capitalize:'+str.capitalize())
print(len(str))
輸出結(jié)果為:
3、日期
Python中包含了datetime模塊素标,提供了非常強(qiáng)大的功能來處理日期和時間
常用對象:
對象 | 描述 |
---|---|
date | 包含年月日 |
datetime | 包含年月日称诗、時分秒 |
示例如下:
from datetime import date, time, datetime, timedelta
today = date.today()
print(today)
current_datetime = datetime.today()
print(current_datetime)
輸出結(jié)果為:
獲取年月日
函數(shù) | 說明 | 示例 |
---|---|---|
year | 獲取年份 | [圖片上傳失敗...(image-58fffb-1588731044908)] |
month | 獲取月份 | [圖片上傳失敗...(image-ddf025-1588731044908)] |
day | 獲取日期 | [圖片上傳失敗...(image-412ddf-1588731044908)] |
timedelta函數(shù)
timedelta 本身代表一個時間差,可以在 date 或 datetime 類型間做時間差運算头遭。
timedelta只存儲days,seconds,microseconds三個值寓免,其他類型會自動換算
示例如下:
a = datetime.now()
b = datetime.utcnow()
a - b
輸出結(jié)果為:
對datetime對象進(jìn)行時間加減操作:
now = datetime.now()
aDay = timedelta(days=1)
aWeek = timedelta(weeks=1)
aHour = timedelta(hours=1)
print(aDay)
print(aWeek)
print(aHour)
now_day = now + aDay
now_week= now + aWeek
now_hour= now + aHour
print(now_day )
print(now_week )
print(now_hour )
輸入結(jié)果為:
strftime函數(shù)
用來格式化datetime對象:datetime.strftime('%')
常用格式符 | 說明 |
---|---|
%Y | 四個數(shù)字的年份 2020 |
%y | 二個數(shù)字的年份 20 |
%m | 返回月份,范圍[0,12] |
%d | 當(dāng)前時間是當(dāng)前月的第幾天 |
%a | 星期的英文縮寫计维,Mon |
%A | 星期的英文全拼袜香,Monday |
%b | 月份的英文縮寫,Jan |
%B | 月份的英文全拼鲫惶,January |
%H | 以24小時制表示當(dāng)前小時 |
%h | 以12小時制表示當(dāng)前小時 |
%M | 返回分鐘數(shù) 范圍 [0,59] |
%S | 返回秒數(shù) 范圍 [0,61] |
%P | 返回是上午還是下午 AM or PM |
%c | 返回datetime的字符串表示困鸥,如03/08/15 23:01:26 |
%x | 日期的字符串表示 :03/08/15 |
%X | 時間的字符串表示 :23:22:00 |
示例如下:
from datetime import datetime
dt = datetime.now()
print ('時間:(%Y-%m-%d %H:%M:%S %f): ' , dt.strftime( '%Y-%m-%d %H:%M:%S' ))
運行結(jié)果為:
4、Python基本數(shù)據(jù)結(jié)構(gòu)
常見的四種數(shù)據(jù)結(jié)構(gòu)對比表格:
操作 | 列表List | 元組Tuple | 字典Dictionary | 集合set |
---|---|---|---|---|
簡介 | 最常用的數(shù)據(jù)類型[x,y,z] | 類似于列表但固定長度剑按,不可變(x,y,z) | 一種可變?nèi)萜髂P蛖key1:value1,key2:value2} | 無序且元素唯一的容器{x,y,z} |
用處 | 簡單有序的疾就,經(jīng)常被修改的數(shù)據(jù)集合,具體元素值不經(jīng)常被查詢 | 一個不變的數(shù)據(jù)集合 | 經(jīng)常被修改艺蝴、被查詢的鍵&值對 | 展現(xiàn)一個數(shù)據(jù)集合中出現(xiàn)的獨特元素的集合 |
創(chuàng)建 | new_list=[1,1,'string'] | new_tup=(1,1,'string') | new_dic={'key_a':1,'key_b':1,'key_c':'string'} | new_set={1,1,'string'} print(new_set)-->{1,'string'} |
重復(fù)元素 | 可重復(fù) | 可重復(fù) | 鍵不可以重復(fù)猬腰,值可以重復(fù) | 不可重復(fù) |
是否有序有 | 有 | 無 | 無 | |
值是否可變可變 | 不可變 | 可變 | 可變 | |
取單個子集(數(shù)字索引從0開始) | new_list[0] | new_tup[0] | new_dic{'key_a'} | 不能被取子集 |
切片取子集 | new_list[x:y] (從第x開始,取到第y個(不包含y)) | 同list | 不能被取切片子集 | 不能被取切片子集 |
修改元素 | new_list[0]=0 | 不可修改 | New_dic['key_c']=2 | 間接通過增加/刪除元素完成 |
增加元素 | append方法加到尾部:new_list.append('extra') 猜敢;insert方法插入到指定位置:new_list.insert(1,'extra') | 不可變 | new_dict['key_new']='extra'; update方法增加多個值:new_dict.update(key_d=3,key_e=4) | add方法增加一個值:new_set.add(3) update方法增加多個值:new_set.update([3,4,5]) |
刪除元素 | pop方法刪除特定位置的元素:new_list.pop(1); remove方法刪除特定值:new_list.remove(1) | 不可變 | del函數(shù)按鍵名刪除:del(new_dict('key_a')) | remove方法刪除一個值:new_set.remove('string') |
創(chuàng)建空×× | empty_list=[] | empty_tup=() | empty_dic={} | empty_set=set() |
5姑荷、控制流
條件語句
當(dāng)“判斷條件”成立時,則執(zhí)行后面的語句缩擂,執(zhí)行內(nèi)容可以多行鼠冕,以縮進(jìn)來區(qū)分表示同一范圍,else為可選語句胯盯,當(dāng)需要在條件不成立時執(zhí)行內(nèi)容懈费。
if語句執(zhí)行過程:
通常情況下,判斷條件為多個時博脑,可使用如下形式:
if 判斷條件1:
執(zhí)行語句1......
elif 判斷條件2:
執(zhí)行語句2......
elif 判斷條件3:
執(zhí)行語句3......
else:
執(zhí)行語句4......
示例如下:
num = 5
if num == 3: # 判斷num的值
print('boss')
elif num == 2:
print('user')
elif num == 1:
print('worker')
elif num < 0: # 值小于零時輸出
print ('error')
else:
print ('roadman') # 條件均不成立時輸出
輸出結(jié)果:
循環(huán)語句
程序一般情況下是按順序執(zhí)行的憎乙。循環(huán)語句允許我們執(zhí)行一個語句或與劇組多次。執(zhí)行過程如下:
循環(huán)類型 | 描述 |
---|---|
while循環(huán) | 在給定的判斷條件為True時執(zhí)行循環(huán)叉趣,否則退出循環(huán)體 |
for循環(huán) | 重復(fù)執(zhí)行語句 |
嵌套循環(huán) | while循環(huán)體和for循環(huán)體可以相互嵌入 |
while循環(huán)
語法如下:
while 判斷條件:
執(zhí)行語句......
流程圖:
示例如下:
count = 0
while (count < 5):
print ('The count is:', count)
count = count + 1
else:
print ("Good bye!")
輸出結(jié)果為:
for循環(huán)
可以遍歷任何序列的項目泞边,如一個列表或者一個字符串。
語法如下:
for 元素 in 序列:
代碼塊
流程圖:
示例如下:
for letter in 'Python': # 第一個實例
print( '當(dāng)前字母 :', letter)
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # 第二個實例
print ('當(dāng)前水果 :', fruit)
print ('Good bye!')
運行結(jié)果為:
循環(huán)嵌套
示例如下:
i = 2
while(i < 10):
j = 2
while(j <= (i/j)):
if not(i%j): break
j = j + 1
if (j > i/j) : print (i, " 是素數(shù)")
i = i + 1
print ("Good bye!")
運行結(jié)果為:
循環(huán)控制語句
控制語句 | 描述 |
---|---|
break語句 | 在語句塊執(zhí)行過程中終止循環(huán)疗杉,并且跳出整個循環(huán) |
continue語句 | 在語句塊執(zhí)行過程中終止當(dāng)前循環(huán)阵谚,跳出該次循環(huán),執(zhí)行下一次循環(huán) |
pass語句 | 空語句,為了保持程序結(jié)構(gòu)的完整性 |
6梢什、自定義函數(shù)
def自定義函數(shù)
語法如下:
def 自定義函數(shù)名稱(x,y):
代碼塊
return
示例如下:
def cal(x,y=1):#y設(shè)置1為默認(rèn)值
result=x*x+y
return result
print(cal(2))
print(cal(2,3))
輸出結(jié)果為:
lambda匿名函數(shù)
通過單個語句生成函數(shù)的方式
示例如下:
cal=lambda x,y=1: x*x+y
print(cal(2))
print(cal(2,3))
輸入結(jié)果為:
其中:lambda為關(guān)鍵詞闻牡,x,y為函數(shù)自變量,x*x+y為函數(shù)返回值的代碼表達(dá)式绳矩。