本文目錄一覽:
- 1、用python從561473957這一組數據中找出最大值和最小值,並從大到小排列的編程
- 2、用python對10個數進行排序
- 3、python數據分析使用的數據
- 4、python數據分析模塊:numpy、pandas全解
- 5、python數據同時排序
- 6、python3爬蟲爬取中國大學排名數據並寫入mysql資料庫並添加省分及添加
用python從561473957這一組數據中找出最大值和最小值,並從大到小排列的編程
li = [56, 14, 73, 95, 7]
print(‘最大值為:{},最小值為:{}’.format(max(li), min(li)))
print(sorted(li, reverse=True))
用python對10個數進行排序
sort_values(by, axis=0, ascending=True, inplace=False, kind=’quicksort’, na_position=’last’)
by: 可以填入字元串或者字元串組成的列表。也就是說,如果axis=0,那麼by=”列名”;如果axis=1,那麼by=”行名”。
axis: {0 or 『index』, 1 or 『columns』}, default 0,意思就是如果axis=0,就按照索引排序,即縱向排序;如果axis=1,則按列排序,即橫向排序。默認是axis=0。
ascending: 輸入布爾型,True是升序,False是降序,也可以可以是[True,False],即第一個欄位升序,第二個欄位降序 。
inplace: 輸入布爾型,是否用排序後的數據框替換現有的數據框(這個在之前的文章寫過很多次了~)
kind: 排序的方法,{『quicksort』, 『mergesort』, 『heapsort』},默認是使用『quicksort』。這個參數用的比較少,大家可以試一試。
na_position : {『first』, 『last』},缺失值的排序,也就說決定將缺失值放在數據的最前面還是最後面。first是排在前面,last是排在後面,默認是用last。
創建數據表:
scores= pd.DataFrame([[87,56,85],[46,87,97],[34,65,86]],
columns=[‘jack’, ‘rose’, ‘mike’])
scores
『rose』這一列進行降序排序:
df_sc=scores.sort_values(by=’rose’,ascending=False)
df_sc
『mike』這一列進行升序排序:
df_sc=scores.sort_values(by=’mike’,ascending=True)
df_sc
對第0行進行升序排序:
scores.sort_values(by=0,axis=1,ascending=True)
我們再嘗試對第1行進行升序,第0行進行降序:
scores.sort_values(by=[1,0],axis=1,ascending=[True,False]
python數據分析使用的數據
1、對數據進行排序df.sort_values()
#讀取數據
titanic_survival=pd.read_csv(r”C:Userspythonwandata_minepython_pandas itanic_train.csv”)
#用sort_values()函數對指定列排序,默認升序排序,inplace=True表示在原來的df上排序titanic_survival.sort_values((“Age”),inplace=Tru
2、缺失值判斷及統計pandas.isnull()、pandas.isnull
空值統計方法一:df.isnull().sum():
#當不指定具體列時,統計整個df的缺失值個數
titanic_survival[‘Age’].isnull().sum()
通過len()函數統計缺失值
3、缺失值處理
處理缺失值可以分為兩類:刪除缺失值和缺失值插補。而缺失值插補又分為以下幾種:
均值/中位數/眾數插補
使用固定值(將缺失值的屬性用一個常量代替)
最近鄰插補(在記錄中找到與缺失值樣本最接近的樣本的該屬性插補)
回歸方法(對帶有缺失值的變數,根據已有數據和與其有關的其他變數建立擬合模型來預測缺失值)
插值法(利用已知點建立合適的插值函數f(x),未知值由對應點xi求出來近似代替)
下面,我們主要討論刪除缺失值,學習一些pandas缺失值刪除的操作。
1)df.dropna(),捨棄含有任意缺失值的行
#等價於titanic_survival.dropna(axis=0) axis=0表示刪除行,axis=1表示刪除列
dropall=titanic_survival.dropna()
刪除含任意空值的行
2)df.dropna()函數刪除某個列中含有空值的行
現在這個數據中age、cabin、embarked都有缺失值,如果我們直接使用df.dropna()會刪除掉這三列中都有空值的所有行,但是我們希望只刪除age列中有空值的數據,那該如何處理呢?
直接使用df.dropna(subset=[‘column_list’])
drop_age_null=titanic_survival.dropna(subset=[“Age”])
刪除指定列中含有缺失值的行
pandas自定義函數
python數據分析模塊:numpy、pandas全解
一維數組情況:
二維數組情況:
3參數情況:
2參數情況:
1參數情況:
一維情況:
二維情況:
一維情況:
二維情況:
一維情況:
二維情況:第三個參數指定維度
只查看行數、或者列數
逗號隔開兩個索引
某些行
某些列
可以看出append()函數在二維數組中添加元素,結果轉為了一維數組。
那怎麼保持二維數組呢?可以設置axis參數按行或者按列添加
可以看出先把二維數組降成了一維數組,再在索引為1的位置添加元素。
那麼怎麼保持在二維添加元素呢? 同樣設置axis參數
也分按行和按列刪除
標記缺失值: isnan()函數
補充缺失值:
同樣axis參數可以指定拼接按行還是按列
2. hstack()函數:以水平堆疊的方式拼接數組
3. vstack()函數:以垂直堆疊的方式拼接數組
第二個參數還可以是數組,指定拆分的位置
hsplit()函數:橫向拆成幾個數組
vsplit()函數:縱向拆成幾個數組
數組與數組之間的運算
數組與數值的運算
可以指定整個數組求和,還是按行或者按列
axis=0:每一列的元素求和
axis=1:每一行的元素求和
axis=0:每一列求均值
axis=1:每一行求均值
axis=0:每一列求最大值
axis=1:每一行求最大值
pandas有兩個重要的數據結構對象:Series和DataFrame。
Series是創建一個一維數組對象,會自動生成行標籤。
會自動生成行列標籤
也可以用字典形式生成數據
在用字典生成數據的基礎上,同時指定行標籤
例如對下表的數據進行讀取
4月是第四個表,我們應把sheet_name參數指定為3;因為索引是從0開始的。
可以看出read_excel()函數自動創建了一個DataFrame對象,同時自動把第一行數據當做列標籤。
可以看出不給出header參數時,該參數默認為0。
header=1時結果如下:
header=None時結果如下:
index_col=0時,第0列為列標籤
index_col=0時
usecols=[2]:指定第二列
指定多列
數據如下:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-j1SHxY8y-1637655972909)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211114192949607.png)]
nrows=3時
head()函數中參數為空默認前5行
指定head(3)時如下
numpy模塊也是shape
查看特定列的書庫類型
特定列數據類型轉換
先查看一下所有數據
與單行相比,結果顯示的格式不一樣了
iloc()挑選:
或者給出區間
挑選數據要麼標籤,要麼索引挑選
或者
或者寫成區間
標籤挑選
或者索引挑選
先查看一下數據
或者用字典一對一修改
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-a6QKIoie-1637655972912)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123110431201.png)]
isin()函數查看錶中是否有該值
查看特定列是否有該值
可以看出上述代碼並沒有替換,那怎麼替換呢?
末尾插入一列
指定插入到哪列
axis參數可以指定刪除行還是刪除列
指定標籤刪除
指定索引刪除
方法三
指定行標籤刪除
指定索引刪除
方法三:
先查看所有數據
info()函數查看數據類型,還可以查看是否有缺失值
isnull()函數查看是否有缺失值
在numpy模塊中用isnan()函數
刪除有缺失值的行
刪除整行都為缺失值的行: 需要指定how參數
不同列的缺失值設置不同的填充值
默認保留第一個重複值所在的行,刪除其他重複值所在的行
保留第一個重複值所在的行
保留最後一個重複值所在的行
是重複的就刪除
降序如下
參數指定first時,表示在數據有重複值時,越先出現的數據排名越靠前
獲取產品為單肩包的行數據
獲取數量60的行數據
獲取產品為單肩包 且 數量60 的行數據
獲取產品為單肩包 或 數量60 的行數據
stack()函數轉換成樹形結構
how參數指定外連接
on參數指定按哪一列合併
concat()函數採用 全連接 的方式,沒有的數設置為缺失值
重置行標籤
效果與concat()一樣
末尾添加行元素
指定列求和
指定列求均值
指定列求最值
獲取單列的
corr()函數獲取相關係數
獲取指定列與其他列的相關係數
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-46g9qgQw-1637655972913)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123135643804.png)]
groupby()函數返回的是一個DataFrameBy對象,該對象包含分組後的數據,但是不能直觀地顯示出來。
分組後獲取指定列的匯總情況
獲取多列的匯總情況
獲取多列的情況
ta = pd.read_excel(『相關性分析.xlsx』)
print(data)
corr()函數獲取相關係數
獲取指定列與其他列的相關係數
[外鏈圖片轉存中…(img-46g9qgQw-1637655972913)]
groupby()函數返回的是一個DataFrameBy對象,該對象包含分組後的數據,但是不能直觀地顯示出來。
分組後獲取指定列的匯總情況
獲取多列的匯總情況
獲取多列的情況
python數據同時排序
Python列表具有內置的 list.sort()方法,可以在原地修改列表。 還有一個 sorted()內置的函數從迭代構建一個新的排序列表。在本文中,我們將探討使用Python排序數據的各種技術。
請注意,sort()原始數據被破壞,sorted()沒有對原始數據進行操作,而是新建了一個新數據。
一、基本的排序
最基本的排序很簡單。只要使用sorted()函數即可返回一個 新的排序的列表
sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]
咱們也可以使用 list.sort()方法。該方法是對列表list進行的原地操作(原數據被修改,已經不是原來的本來面目)。一般情況下,不如使用 sorted()方便,但是如果你不需要原列表list,使用 sort()會更具效率。
a = [5, 2, 3, 1, 4]
a.sort()
a #a發生改變
[1, 2, 3, 4, 5]
另一個不同點, list.sort()方法只能應用於列表對象數據。而 sorted()卻可以對任何可迭代對象進行排序。也就是說sorted()更具有普遍使用性。這裡大燈建議初學者使用sorted()。
二、Key參數函數
list.sort()和 sorted()都有key參數,可以指定函數來對元素進行排序。
例如,這裡我們使用一個字元串(字元串也是可迭代對象)
sorted(“This is a test string from Andrew”.split(), key=str.lower)
python3爬蟲爬取中國大學排名數據並寫入mysql資料庫並添加省分及添加
網路爬蟲(又稱為網頁蜘蛛,網路機器人,在FOAF社區中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。
原創文章,作者:WIQD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/139507.html