loc中的數(shù)據(jù)是列名,是字符串,所以前后都要??;iloc中數(shù)據(jù)是int整型,所以是Python默認的前閉后開
網(wǎng)站的建設創(chuàng)新互聯(lián)公司專注網(wǎng)站定制,經(jīng)驗豐富,不做模板,主營網(wǎng)站定制開發(fā).小程序定制開發(fā),H5頁面制作!給你煥然一新的設計體驗!已為成都垃圾桶等企業(yè)提供專業(yè)服務。
構建數(shù)據(jù)集df
loc函數(shù)主要通過行標簽索引行數(shù)據(jù) ,劃重點, 標簽!標簽!標簽!
loc[1] 選擇行標簽是1的(從0、1、2、3這幾個行標簽中)
loc[0:1] 和 loc[0,1]的區(qū)別,其實最重要的是loc[0:1]和iloc[0:1]
索引某一列數(shù)據(jù),loc[:,0:1],還是標簽,注意,如果列標簽是個字符,比如'a',loc['a']是不行的,必須為loc[:,'a']。
但如果行標簽是'a',選取這一行,用loc['a']是可以的。
iloc 主要是通過行號獲取行數(shù)據(jù),劃重點,序號!序號!序號!
iloc[0:1],由于Python默認是前閉后開,所以,這個選擇的只有第一行!
如果想用標簽索引,如iloc['a'],就會報錯,它只支持int型。
ix——結合前兩種的混合索引,即可以是行序號,也可以是行標簽。
如選擇prize10(prize為一個標簽)的,即 df.loc[df.prize10]
還有并或等操作
python選取特定列——pandas的iloc和loc以及icol使用
pandas入門——loc與iloc函數(shù)
pandas中l(wèi)oc、iloc、ix的區(qū)別
pandas基礎之按行取數(shù)(DataFrame)
一、萌新語法
輸入和輸出
print()
#打印括號的內(nèi)容
#第一種:不帶引號,讓計算機讀懂括號里的內(nèi)容,打印最終的結果
print(1+1)
#第二種:帶單引號,計算機無須理解,原樣復述引號中的內(nèi)容
print('秋水共長天一色')
秋水共長天一色
#第三種:帶雙引號,作用和單引號一樣;當打印內(nèi)容中有單引號時,可以使用雙引號
print("Let's go")
Let's go
print('Let's go')
Let's go
#也可以使用轉義字符+單引號(')來實現(xiàn)單引號
#第四種:帶三引號,實現(xiàn)換行
print('''python小課
最好的python課程''')
pyton小課
最好的python課程
# 采用轉義字符"n"也可以換行
input()
#收集信息
name = input('請輸入你的forchange ID:')
# 使用變量賦值來獲取輸入的信息
變量的命名
1.只能是一個詞;
2.只能包含字母、數(shù)字和下劃線;
3.不能以數(shù)字開頭;
4.盡量描述包含的數(shù)據(jù)內(nèi)容;
5.不要使用python函數(shù)名和關鍵字。
number = 34
name = 'forchange'
list_class = ['基礎語法課程','爬蟲分析初階','爬蟲分析進階','自動化辦公']
#以上number,name,list_class都是是變量名
條件判斷
條件判斷的解釋:讓計算機知道,在什么條件下,該去做什么。
單向判斷
if…
#如果條件成立,就執(zhí)行語句
number = 6
if number 3:
... pirnt(number)
6
#注意格式!if后面要加冒號,同時執(zhí)行語句要縮進四個空格。(空格和tab,我選空格?^^)
雙向判斷
if…else…
#條件成立執(zhí)行if語句,否則執(zhí)行else語句
number = 7
if number 3:
pirnt(number)
else:
number = number - 3
print(number)
#結果輸出為4
#if和else是同一層級,不需要縮進。if和else下的執(zhí)行語句都需要縮進四個空格。
if…else…和if…if…的區(qū)別
#if…else…一個條件滿足后就不會進行其他判斷(if代表的條件和else代表的條件是互斥的)
#if…if…會遍歷所有條件,一個條件無論滿足還是不滿足,都會進行下一個條件的判斷
多向判斷
if…elif…else
#三個及其以上條件的判斷
grade = 65
if 80 = grade =100:
print('成績優(yōu)秀')
elif 60 = grade 80:
print('成績中等')
else :
print('成績差')
#結果輸出為成績中等
IF嵌套
if 嵌套
#使用if進行條件判斷,還希望在條件成立的執(zhí)行語句中再增加條件判斷,即if中還有if,這兩個if非平級
grade = 15
if 80 = grade =100:
print('成績優(yōu)秀')
elif 60 = grade 80:
print('成績中等')
else :
print('成績差')
if 20= grade 60:
print('再努力一把,還有救!')
else :
print('你要比以前更努力才行,你可以的!')
#結果輸出為:
成績差
你要比以前更努力才行,你可以的!
#注意,嵌套的第二個if縮進了4個空格,表示不同的層級。
二、數(shù)據(jù)類型
數(shù)據(jù)類型
python常見的數(shù)據(jù)類型:字符串,整數(shù)型,浮點數(shù),列表,字典,布爾值,元組。
最基本的數(shù)據(jù)類型有三種:
字符串str:用引號括起來的文本(如:'python'、'123'、'風變編程')
整數(shù)int:不帶小數(shù)點的數(shù)字(如:-1、1、0、520、1314)
浮點數(shù)float:帶小數(shù)點的數(shù)字,運算結果存在誤差(如:-0.15、3.1415、1.0)
以下的數(shù)據(jù)結構會有一節(jié)或兩節(jié)的課程介紹,可輕松上手。
列表list:是一種有序的集合,可以隨時增加或刪除其中的元素。標識是中括號[]。
元組tuple:一種類似列表的數(shù)據(jù)類型,但是不能被修改。
字典dice:全稱為dictionary,使用鍵值對(key-value)作為存儲方式。標識是大括號{}。
布爾值bool:表示真假的數(shù)據(jù)類型,只有兩個值,True和False。
數(shù)據(jù)的操作
字符串的拼接
初階用法:使用 ' + ' 進行字符串的拼接
print('風變'+'編程')
風變編程
name = '醬醬'
begin = '我叫'
print(begin + name)
我叫醬醬
進階用法:使用 ' % ' 進行字符串的拼接
name = '《鳳求凰》'
number = 1
print('司馬相如以%d曲%s打動了卓文君' %(number,name))
司馬相如以1曲《鳳求凰》打動了卓文君
四則運算
運算符 表示 例子
+ 加 1 + 1 輸出結果為2
- 減 1 - 1 輸出結果為0
* 乘 3 * 2 輸出結果為6
/ 除 2 / 1 輸出結果為2
% 取模-返回除法的余數(shù) 5 % 2 輸出結果為1
** 冪-返回x的y次冪 2 ** 3 輸出結果為8
// 取整除-返回商的整數(shù)部分 11 // 2 輸出結果為5
運算優(yōu)先級:
與平時運算優(yōu)先級一樣:從左到右順著來,括號里的優(yōu)先算,乘除排在加減前。
數(shù)據(jù)轉換
type()
#查看變量的數(shù)據(jù)類型
who = 'xiaojiangjiang'
print(type(who))
class 'str'
#結果顯示這是一個字符串類型的數(shù)據(jù)
str()
#將其他數(shù)據(jù)類型強制轉換為字符串
begin = '我吃了'
number = 1
fruit = '個水果'
print(begin + str(number) +fruit)
我吃了1個水果
#進行字符串拼接時,不同數(shù)據(jù)類型不能直接使用'+'連接,需要現(xiàn)將整數(shù)轉化為字符串類型
int()
#將整數(shù)形式的字符串轉化為整數(shù)(文本類字符串和浮點形式的字符串不能轉化為整數(shù))
#對浮點數(shù)直接抹零取整
print(int(3.8))
3
float()
#將整數(shù)和字符串轉換為浮點數(shù)(文字類字符串無法轉換)
print(float(8))
8.0
list()
#將數(shù)據(jù)轉換為列表類型
a = 'python小課'
print(list(a))
['p', 'y', 't', 'h', 'o', 'n', '小', '課']
len()
#用于檢查某個數(shù)據(jù)的長度
bros = ['劉備','關羽','張飛']
print(len(bros))
3
emotion = 'happy'
print(len(emotion))
5
數(shù)據(jù)的常用語法
列表語法
列表的操作可分為兩種類型,一種類型為對列表元素的處理,另一種類型為對列表的處理,每種類型都有四種操作:提取,修改,增加,刪除(取改增刪)。
偏移量:對列表元素的位置編號。
#列表的偏移量從0開始計算
#如果要提取一段列表,需要使用切片的形式[a:b]:從a到b的元素,但不包括b(a = X b);冒號某側如果沒有數(shù)字,則全取
list = ['松','竹','梅']
print(list[0])
print(list[1:2])
print(list[:2])
松
['竹']
['松','竹']
#松,竹,梅三者的偏移量分辨是0,1,2。
列表元素的提取
list = ['松','竹','梅']
print(list[0])
松
list = [['松','松樹'],['竹','竹子'],['梅','梅花']]
print(list[0][1])
松樹
#嵌套列表的提取
列表元素的修改
list = ['松','竹','梅']
list[0] = '松樹'
print(list)
['松樹', '竹', '梅']
列表元素的增加
append()
#是列表的方法,在括號內(nèi)添加一個元素,可以將該元素添加到列表末尾
list = ['松','竹']
list.append('梅')
print(list)
['松','竹','梅']
易錯一:用append時不能對列表賦值
list = ['松','竹']
list = list.append('梅')
print(list)
None
#第二行語法錯誤
易錯二:append后面是小括號,而非中括號
list = ['松','竹']
list.append['梅']
print(list)
TypeError: 'builtin_function_or_method' object is not subscriptable
#第二行語法錯誤
易錯三:append不能一次添加多個元素
list = ['松','竹']
list.append('梅','歲寒三友')
print(list)
TypeError: append() takes exactly one argument (2 given)
#第二行語法錯誤
列表元素的刪除
del
#刪除命令
易錯一:每次只能刪除一個元素,
易錯二:刪除多個元素時,要重新計算偏移量
list = ['松','竹','梅']
del list[0]
print(list)
del list[0]
print(list)
['竹', '梅']
['梅']
列表的切片(即列表層面的提取,一次提取若干個元素)
list = ['松','竹','梅']
print(list[1:2])
print(list[:2])
['竹']
['松','竹']
#注意:列表的切片提取出來的是列表
列表的修改
#同樣是使用賦值語句,注意是對列表的賦值
list = ['松','竹','梅']
list[:] = ['歲寒三友']
#list[:]表示將列表的所有元素取出來
print(list)
['歲寒三友']
#注意以下的錯誤做法:
list = ['松','竹','梅']
list[:] = '歲寒三友'
print(list)
['歲', '寒', '三', '友']
列表的增加
列表的增加叫作列表的合并會更合理
#使用符號'+'
#符號'+'只能用在列表之間,不能用在列表和元素之間
list1 = ['松']
list2 = ['竹']
list3 = ['梅']
list = list1 + list2 +list3
print(list)
['松', '竹', '梅']
列表的刪除
del
#刪除命令
list = ['松','竹','梅']
del list[:2]
print(list)
['梅']
字典語法
字典數(shù)據(jù)的提取
#列表使用偏移量來提取,字典使用鍵來提取
group = {'師父':'唐三藏', '大師兄':'孫行者', '二師兄':'豬八戒', '沙師弟':'沙和尚'}
print(group['師父'])
唐三藏
字典數(shù)據(jù)的修改
group = {'師父':'唐三藏', '大師兄':'孫行者', '二師兄':'豬八戒', '沙師弟':'沙和尚'}
group['師父']='唐玄奘'
print(group)
{'師父': '唐玄奘', '大師兄': '孫行者', '二師兄': '豬八戒', '沙師弟': '沙和尚'}
字典數(shù)據(jù)的增加
group = {'師父':'唐三藏', '大師兄':'孫行者', '二師兄':'豬八戒', '沙師弟':'沙和尚'}
group['白龍馬']='敖烈'
print(group)
{'師父': '唐三藏', '大師兄': '孫行者', '二師兄': '豬八戒', '沙師弟': '沙和尚', '白龍馬': '敖烈'}
字典數(shù)據(jù)的刪除
group = {'師父':'唐三藏', '大師兄':'孫行者', '二師兄':'豬八戒', '沙師弟':'沙和尚'}
del group['師父']
print(group)
{'大師兄': '孫行者', '二師兄': '豬八戒', '沙師弟': '沙和尚'}
dict.keys()
#提取字典中所有的鍵
group = {'師父':'唐三藏', '大師兄':'孫行者', '二師兄':'豬八戒', '沙師弟':'沙和尚'}
print(group.keys())
dict_keys(['師父', '大師兄', '二師兄', '沙師弟'])
#打印出了所有字典的鍵,但是都是元組的形式
group = {'師父':'唐三藏', '大師兄':'孫行者', '二師兄':'豬八戒', '沙師弟':'沙和尚'}
print(list(group.keys()))
['師父', '大師兄', '二師兄', '沙師弟']
#通過list()函數(shù)將元組轉化為列表的形式
dict.values()
#提取字典中所有的值
group = {'師父':'唐三藏', '大師兄':'孫行者', '二師兄':'豬八戒', '沙師弟':'沙和尚'}
print(group.values())
dict_values(['唐三藏', '孫行者', '豬八戒', '沙和尚'])
dict.items()
#提取字典中所有的鍵值對
group = {'師父':'唐三藏', '大師兄':'孫行者', '二師兄':'豬八戒', '沙師弟':'沙和尚'}
print(group.items())
dict_items([('師父', '唐三藏'), ('大師兄', '孫行者'), ('二師兄', '豬八戒'), ('沙師弟', '沙和尚')])
產(chǎn)生布爾值的表達式
bool()
#檢查數(shù)值的真假
print(bool(1))
True
值本身作為條件
假的 其他都是真的
False True
0 5(任意整數(shù))1.0(任意浮點數(shù))
''(空字符串) '風變編程'(字符串)
[](空列表) [1,2,3]
{}(空字典) {1:'a',2:'b'}
None
比較運算符產(chǎn)生布爾值
運算符 釋義 作用
== 等于 如果兩側的值相等,條件為真
!= 不等于 如果兩側的值不相等,條件為真
大于 如果左側的值大于右側,條件為真
小于 如果左側的值大于右側,條件為真
= 大于等于 如果左側的值大于或等于右側,條件為真
= 小于等于 如果左側的值小于或等于右側,條件為真
注意:運算符之間不用空格,不可以寫成= =、 =
成員運算符產(chǎn)生布爾值
運算符 釋義 作用
in 屬于 如果值在指定序列里,條件為真
not in 不屬于 如果值不在指定序列里,條件為真
邏輯運算符產(chǎn)生布爾值
運算符 釋義 作用
and 且 連接兩個布爾值,如果兩個都為真,該條件才為真
or 或 連接兩個布爾值,如果有一個為真,該條件即為真
not 非 反邏輯狀態(tài),a為True,not a則為False,反之亦然
三、循環(huán)
for循環(huán)
for循環(huán)的基本格式是:for…in…
#遍歷字符串
for i in 'coding':
... print(i)
c
o
d
i
n
g
#遍歷列表
for i in ['for','change']
... print(i)
for
change
for…in dict:
#遍歷字典的鍵
list = {1:'a',2:'b',3:'c'}
for i in list:
... print(i)
1
2
3
for…in dict.values():
#遍歷字典的值
list = {1:'a',2:'b',3:'c'}
for i in list.values():
... print(i)
a
b
c
for…in dict.items():
#遍歷字典的鍵值對
list = {1:'a',2:'b',3:'c'}
for k, v in list.items():
... print(k)
... print(v)
1
a
2
b
3
c
range()函數(shù)
#range()有最基本的三種用法:range(b), range(a,b),range(a,b,c)。
#函數(shù)中各個數(shù)值的意義:a:計數(shù)從a開始。不填時,從0開始;b:計數(shù)到b結束,但不包括b;c:計數(shù)的間隔,不填時默認為1。
range(5)
#計數(shù)依次為0,1,2,3,4
range(1,5)
#計數(shù)依次為1,2,3,4
range(2,8,2)
#計數(shù)依次為2,4,6
for…in range()
#處理指定次數(shù)的循環(huán)
for i in range(3):
... print('第%d遍風變編程' %i)
第0遍風變編程
第1遍風變編程
第2遍風變編程
while循環(huán)
while循環(huán)
#當條件為真時,執(zhí)行循環(huán)語句,只要條件為真,便會一直循環(huán)
count = 3
while count 1:
... print('happy coding')
... count = count -1
happy coding
happy coding
while循環(huán)和for循環(huán)的區(qū)別:
#for擅長處理固定次,自動遍歷各序列
#while處理不定次數(shù)的循環(huán),條件為False便停止
循環(huán)進階
break
#如果滿足條件,則結束循環(huán)
while True:
... print('happy coding')
... break
happy coding
#break會結束循環(huán),如果只有前兩行代碼,會無限循環(huán)打印happy coding
count = 3
while count 1:
... print('happy coding')
... count = count - 1
... if count == 2: #當count等于2的時候,停止循環(huán)
... break
happy coding
#對比while循環(huán)的例子,我們發(fā)現(xiàn)這里只打印了一次happy coding
continue
#如果滿足條件,則跳過當前循環(huán)的剩余語句,直接開始下一輪循環(huán)
count = 3
while count 1:
print('happy')
count = count - 1
if count == 2: #當count等于2的時候,跳過下列語句,重新開始新的一輪循環(huán)
continue
print('coding') #由于continue語句,coding只會打印一次
#打印的結果為:
happy
happy
coding
else
#無論是否進入循環(huán),最后都會執(zhí)行esle語句,除非執(zhí)行break語句跳出循環(huán)
count = 3
while count 2:
print('在風變')
count = count -1
else: #無論是否進入循環(huán)都會執(zhí)行else語句
print('happy coding')
#打印結果為:
在風變
happy coding
循環(huán)嵌套
#即循環(huán)中有循環(huán)
for i in ['風變','編程']: #首先遍歷列表元素
... for t in i: #然后遍歷元素(字符串)
... print(t)
風
變
編
程
四、函數(shù)
函數(shù)基本知識
函數(shù)
函數(shù)是組織好的、可以重復使用的、用來實現(xiàn)單一功能的代碼
函數(shù)類型可分為自定義函數(shù)和內(nèi)置函數(shù),自定義函數(shù)是需要自己定義,而內(nèi)置函數(shù)是python內(nèi)部已經(jīng)定義好的函數(shù),比如print()、input()等
函數(shù)定義的語法
def
#定義函數(shù)
return
#函數(shù)的返回值
#函數(shù)定義的格式
def 函數(shù)名(參數(shù)):
函數(shù)體
return 語句
#一個簡單的例子
def math_func(x):
y = x + 5
print(y)
return y
math_func(2)
#打印結果為7
變量作用域
變量作用域可認為是變量作用的范圍
全局變量:在全局內(nèi)生效的變量
局部變量:只能函數(shù)內(nèi)或者一定代碼塊內(nèi)生效
global
#將局部變量轉化為局部變量
python內(nèi)置函數(shù)
五、類與對象
概念
類:具有相同屬性和方法的對象的抽象
實例:類的個例
對象:Python中的對象是類和實例的集合,類可以看作是對象,實例也可以看作是對象
基本語法
class
#定義類,注意類名需要大寫
class MyClass: #定義類MyClass
i =12345 #定義類的屬性(變量)
def f(self): #定義類的方法
return('hello world') #執(zhí)行這個方法會返回'hello word'這個字符串
x = MyClass() #創(chuàng)建類的實例x
print(x.i) #打印實例x的屬性
print(x.f()) #打印實例x的f方法
#輸出的結果為
12345
hello world
class A(B)
#定義B類的子類A類,A類具有B類的屬性和方法,也將B類稱為A類的父類
class SecondClass(MyClass):
pass
#定義SecondClass是MyClass的子類,SecondClass可以調(diào)用MyClass的屬性和方法
x = SecondClass()
print(x.i)
print(x.f())
#輸出的結果為
12345
hello world
class A(B, C)
#多重繼承,A類同時是B類和C類的子類,A類在調(diào)用屬性和方法的時候,會優(yōu)先調(diào)用位于左側的類
class B:
i = 123 #B類的屬性是i=123
class C:
i = 12345 #C類的屬性是i=12345
class A(B,C): #A類是B類和C類的子類
pass
x = A() #創(chuàng)建A類的實例x
print(x.i) #調(diào)用屬性,會優(yōu)先調(diào)用B類的屬性
#結果輸出為
123
def __init__(self):
#創(chuàng)建類的初始化方法,只要調(diào)用類,便自動調(diào)用初始化方法的語句,常用于創(chuàng)建實例屬性
class A:
... def __init__(self): #只要創(chuàng)建實例,便會自動執(zhí)行初始化方法下的語句
... print('hello world')
x = A()
hello world #只要創(chuàng)建實例就會調(diào)用方法,打印hello world
#對比以下沒有初始化的方法:
class A:
... def f(self):
... print('hello world')
x = A()
#不使用初始化方法,創(chuàng)建實例無任何輸出
super()
#在子類的方法里調(diào)用父類的方法,使子類的方法可以在繼承父類方法的基礎上進行擴展
123 def super(cls, inst): mro = inst.__class__.mro() return mro[mro.index(cls) + 1]
cls代表類,inst代表實例,可以看出上面的代碼做了兩件事:
· 獲取inst的MRO列表。
· 查找cls在MRO的index,并返回它的下一個類,即mro[index + 1]
當你使用super(cls, inst)時,python會在inst的MRO列表上搜索下cls的下一個類。
六、模塊與庫
模塊類型
內(nèi)置模塊
#python官方組織編寫和維護的模塊
自定義模塊
#自己寫代碼,然后將代碼塊保存為 .py 文件
第三方模塊
#從自定義模塊而來,代碼寫作者公開自己的代碼
#根據(jù)模塊的組織形式的不同,也可分為單個模塊文件、模塊包、模塊庫
模塊和模塊對象導入方法
import A
#導入模塊A
#現(xiàn)在可以調(diào)用模塊里函數(shù)和變量,但是必須通過【模塊名.函數(shù)名()】和【模塊名.變量名】的方式調(diào)用
#創(chuàng)建類實例的時候,需要使用【實例名 = 模塊名.類名()】進行創(chuàng)建,創(chuàng)建實例后調(diào)用類方法和屬性可以使用【實例名.函數(shù)名()】和【實例名.變量名】
import A as a
#導入模塊A,并將模塊A重新命名為a
#調(diào)用模塊中的類、函數(shù)和變量如上述操作一樣
from A import B
#導入模塊A中的對象B
#調(diào)用對象B中的函數(shù)和變量可以不加模塊名
from A import B,C,D
#導入模塊A中的多個對象B,C,D
from A import *
#導入模塊A中的所有對象
if __name__=="__main__":
#當.py文件被直接運行時,if __name__=="__main__":之下的代碼塊將被運行
#當.py文件以模塊形式被導入時,if __name__=="__main__":之下的代碼塊不被運行
七、文件讀寫
文件讀寫三步驟
第一步,打開文件
第二步,讀(寫)文件
第三步,關閉文件
打開文件語法
open(file, mode, encoding)
#打開文件
f = open('/letter.txt', 'r', encoding = 'UTF-8')
with open() as…
#使用這種方式打開文件,可以不使用close()關閉文件
with open('/letter.txt', 'r', encoding = 'UTF-8') as f:
讀寫模式mode
模式mode 操作 若不存在 是否覆蓋
r 只能讀不能寫 報錯 -
rb 二進制只讀 報錯 -
r+ 可讀可寫 報錯 是
rb+ 二進制讀寫 報錯 是
w 只能寫不能讀 創(chuàng)建文件 是
wb 二進制只寫 創(chuàng)建文件 是
w+ 可讀可寫 創(chuàng)建文件 是
wb+ 二進制讀寫 創(chuàng)建文件 是
a 追加不能讀 創(chuàng)建文件 否,追加寫
ab 二進制追加不能讀 創(chuàng)建文件 否,追加寫
a+ 可讀可寫 創(chuàng)建文件 否,追加寫
ab+ 二進制追加可讀可寫 創(chuàng)建文件 否,追加寫
讀寫文件語法
read()
#讀取文件內(nèi)容
with open('/letter.txt','r',encoding = 'UTF-8') as f:
content = f.read()
#以字符串的形式讀取文件內(nèi)容,將文件內(nèi)容賦值給變量content
readlines()
#以列表的方式讀取文件內(nèi)容
with open('/letter.txt','r',encoding = 'UTF-8') as f:
content = f.readlines()
#以列表的形式讀取文件內(nèi)容,將文件內(nèi)容賦值給變量content
write()
#清空文件內(nèi)容,并寫入字符串入內(nèi)容
with open('/letter.txt','r',encoding = 'UTF-8') as f:
f.write('python')
writelines()
#清空文件內(nèi)容,以列表的方式寫入
with open('/letter.txt','r',encoding = 'UTF-8') as f:
f.writelines('python')
關閉文件語法
close()
#關閉文件
csv文件讀寫的相關函數(shù)
reader()
#讀取csv文件的函數(shù)
import csv #導入csv模塊
with open('letter.csv') as f:
reader = csv.reader(f) #讀取csv文件,將文件內(nèi)容賦值到reader
writer()
#將內(nèi)容寫入csv文件
writerow()
#寫入一行內(nèi)容
writerows()
#一次寫入多行csv文件
import csv #導入csv模塊
with open('letter.csv','w',newline = '') as f:
writer = csv.writer(f) #寫入csv文件
writer.writerow(['python小課','風變編程']) #寫入一行內(nèi)容
data = [['交互式學習','更簡單'],['助教醬醬','為你答疑解惑']]
writer.writerows(data) #寫入多行內(nèi)容
os模塊
os.getcwd()
#返回當前的工作目錄
八、debug
try…except…語句
用于處理
for i in range(6):
try:
print(6/i)
#使用6依次除于0,1,2,3,4,5,并打印
except ZeroDivisionError
#除非發(fā)生ZeroDivisionError類型的錯誤,執(zhí)行下列語句
print('0是不能做除數(shù)的!')
九、其他
str.spilt()
#返回一個由字符串內(nèi)單詞組成的列表
'1,2,3'.split()
['1',',','2',',','3']
'1,2,3'.split('?,')
['1','2','3']
random模塊
#隨機模塊
import random
#需要先導入random模塊,然后再調(diào)用相應方法
print(random.randint(1,10)) # 產(chǎn)生 1 到 10 的一個整數(shù)型隨機數(shù)
print(random.random()) # 產(chǎn)生 0 到 1 之間的隨機浮點數(shù)
print(random.uniform(1.1,5.4)) # 產(chǎn)生 1.1 到 5.4 之間的隨機浮點數(shù),區(qū)間可以不是整數(shù)
print(random.choice('tomorrow')) # 從序列中隨機選取一個元素
print(random.randrange(1,100,2)) # 生成從1到100的間隔為2的隨機整數(shù)
轉義字符
轉義字符 意義
a 響鈴(BEL)
b 退格(BS),將當前位置移到前一列
f 換頁(FF),將當前位置移到下頁開頭
n 換行(LF),將當前位置移到下一行開頭
r 回車(CR),將當前位置移到本行開頭
t 水平制表(HT) (跳到下一個TAB位置)
v 垂直制表(VT)
代表一個反斜杠字符""
' 代表一個單引號(撇號)字符
" 代表一個雙引號字符
? 代表一個問號
0 空字符(NUL)
ddd 1到3位八進制所代表的任意字符
xhh 1到2位十六進制所代表的任意字符
注意1:區(qū)分斜杠“/”和反斜杠“”,此處不可互換。注意2:以上表格內(nèi)容也不需要硬記。
一、sort_values()函數(shù)用途
pandas中的sort_values()函數(shù)原理類似于SQL中的order by,可以將數(shù)據(jù)集依照某個字段中的數(shù)據(jù)進行排序,該函數(shù)即可根據(jù)指定列數(shù)據(jù)也可根據(jù)指定行的數(shù)據(jù)排序。
二、sort_values()函數(shù)的具體參數(shù)
用法:
1DataFrame.sort_values(by=‘##',axis=0,ascending=True, inplace=False, na_position=‘last')
參數(shù)說明
by指定列名(axis=0或'index')或索引值(axis=1或'columns')
axis若axis=0或'index',則按照指定列中數(shù)據(jù)大小排序;若axis=1或'columns',則按照指定索引中數(shù)據(jù)大小排序,默認axis=0
ascending是否按指定列的數(shù)組升序排列,默認為True,即升序排列
inplace是否用排序后的數(shù)據(jù)集替換原來的數(shù)據(jù),默認為False,即不替換
na_position{‘first',‘last'},設定缺失值的顯示位置
三、sort_values用法舉例
創(chuàng)建數(shù)據(jù)框
#利用字典dict創(chuàng)建數(shù)據(jù)框
import numpy as np
import pandas as pd