Python數(shù)據(jù)分析-基礎(chǔ)知識整理

數(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é)果為:


image.png

2、字符串常用模塊血崭、函數(shù)和操作

使用引號包含字符串

使用符號 輸出效果
單個引號('') 輸出引號內(nèi)的字符
3個引號(''') 允許字符串跨多行卧惜,所見即所得格式

示例如下:

var1 = 'Hello World!'
var2='''hello 
world!
'''
print(var1)
print('----------')
print(var2)

輸出結(jié)果為:


image.png

字符串轉(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é)果為:


image.png

字符串處理標(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é)果為:


image.png

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é)果為:


image.png

獲取年月日

函數(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é)果為:


image.png

對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é)果為:


image.png

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é)果為:


image.png

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í)行過程:

image.png

通常情況下,判斷條件為多個時博脑,可使用如下形式:

 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é)果:


image.png

循環(huán)語句

程序一般情況下是按順序執(zhí)行的憎乙。循環(huán)語句允許我們執(zhí)行一個語句或與劇組多次。執(zhí)行過程如下:

image.png
循環(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í)行語句......

流程圖:

image.png

示例如下:

count = 0
while (count < 5):
   print ('The count is:', count)
   count = count + 1

else:
    print ("Good bye!")

輸出結(jié)果為:


image.png

for循環(huán)

可以遍歷任何序列的項目泞边,如一個列表或者一個字符串。

語法如下:

for 元素 in 序列:
   代碼塊

流程圖:

image.png

示例如下:

for letter in 'Python':     # 第一個實例
   print( '當(dāng)前字母 :', letter)

fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        # 第二個實例
   print ('當(dāng)前水果 :', fruit)

print ('Good bye!')

運行結(jié)果為:


image.png

循環(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é)果為:

image.png

循環(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é)果為:


image.png

lambda匿名函數(shù)

通過單個語句生成函數(shù)的方式

示例如下:

cal=lambda x,y=1: x*x+y
print(cal(2))
print(cal(2,3))

輸入結(jié)果為:


image.png

其中:lambda為關(guān)鍵詞闻牡,x,y為函數(shù)自變量,x*x+y為函數(shù)返回值的代碼表達(dá)式绳矩。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末罩润,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子翼馆,更是在濱河造成了極大的恐慌割以,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件应媚,死亡現(xiàn)場離奇詭異严沥,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)中姜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門消玄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人丢胚,你說我怎么就攤上這事翩瓜。” “怎么了携龟?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵兔跌,是天一觀的道長。 經(jīng)常有香客問我峡蟋,道長坟桅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任蕊蝗,我火速辦了婚禮仅乓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蓬戚。我一直安慰自己夸楣,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布碌更。 她就那樣靜靜地躺著裕偿,像睡著了一般洞慎。 火紅的嫁衣襯著肌膚如雪痛单。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天劲腿,我揣著相機(jī)與錄音旭绒,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛挥吵,可吹牛的內(nèi)容都是我干的重父。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼忽匈,長吁一口氣:“原來是場噩夢啊……” “哼房午!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起丹允,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤郭厌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后雕蔽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體折柠,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年批狐,在試婚紗的時候發(fā)現(xiàn)自己被綠了扇售。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡嚣艇,死狀恐怖承冰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情食零,我是刑警寧澤巷懈,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站慌洪,受9級特大地震影響顶燕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜冈爹,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一涌攻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧频伤,春花似錦恳谎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至岸更,卻和暖如春鸵膏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背怎炊。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工谭企, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留廓译,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓债查,卻偏偏與公主長得像非区,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子盹廷,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360