最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【Python 教程】使用 Pandas 整理數(shù)據(jù)

2022-06-13 10:12 作者:gewzk  | 我要投稿


Pandas 是 Python 中用于高效處理數(shù)據(jù)的開源庫,它的名字其實(shí)取自 Panel Data(面板數(shù)據(jù)),即多維數(shù)據(jù)的計(jì)量經(jīng)濟(jì)學(xué)。

在 Pandas 庫出現(xiàn)以前,Python 也能用來處理數(shù)據(jù),但其中對(duì)數(shù)據(jù)分析的支持相當(dāng)有限。因此,Pandas 的出現(xiàn)彌補(bǔ)了原生 Python 的不足,促進(jìn)了 Python 語言在裝載、操作、準(zhǔn)備、建模和分析數(shù)據(jù)上的能力。

由于 Pandas 建立于 NumPy 庫之上,如果此前沒有 NumPy 相關(guān)的基礎(chǔ)知識(shí),也歡迎先看看之前寫過的 NumPy 教程文章:

【Python 核心庫】Numpy 實(shí)景教程與練習(xí)

為什么使用 Pandas 處理數(shù)據(jù)?

Pandas 之所以廣泛應(yīng)用于數(shù)據(jù)處理,是因?yàn)樗臄?shù)據(jù)框架(DataFrame)和系列比其他的模塊或框架擁有更具有可視性。Pandas 簡(jiǎn)明清晰的應(yīng)用程序接口(API)也能讓程序員更專注于代碼的核心部分,使代碼和數(shù)據(jù)都更簡(jiǎn)潔。

如何安裝 Pandas?

使用 Pandas 進(jìn)行編程首先需要在 Python 編輯器或 Python IDE 安裝相應(yīng)的模塊。以教程中使用的 Lightly 為例,只需要在代碼中直接寫入 import pandas as pd,就可以通過 QuickFix 就可以一鍵安裝。由于 Pandas 庫經(jīng)常需要運(yùn)用 Numpy 相關(guān)的函數(shù),引用 Pandas 的同時(shí)也可以一起通過 import numpy as np 引用 Numpy,更加方便。更多關(guān)于第三方模塊的安裝方式,可以查看如何手動(dòng)下載和安裝依賴。

Pandas 跟練項(xiàng)目:

在這篇 Pandas 跟練項(xiàng)目中,我們將制作一個(gè)簡(jiǎn)易的分?jǐn)?shù)統(tǒng)計(jì)與查分程序。完成這個(gè)項(xiàng)目后,你可以學(xué)會(huì)如何:

  • 將數(shù)據(jù)內(nèi)容轉(zhuǎn)換為表格

  • 使用 Pandas 計(jì)算總分

  • 順序、逆序排列數(shù)據(jù)值

  • 通過查找返回指定數(shù)據(jù)

  • 刪除及合并列表

完整學(xué)習(xí)此教程,可參考代碼:https://d1590a0dfb-share.lightly.teamcode.com

將數(shù)據(jù)內(nèi)容轉(zhuǎn)換為表格

如果回看 Numpy 數(shù)組中的數(shù)據(jù)內(nèi)容,我們其實(shí)可能會(huì)覺得這樣的數(shù)據(jù)形式和慣用的行列式表格有所不同,觀感上也沒有那么清晰。

若用 Pandas 處理同一個(gè)或者更復(fù)雜的數(shù)據(jù),那么他的輸出效果便會(huì)更接近我們場(chǎng)景的表格,最終也能通過函數(shù)輸出為 .csv 類型的表格文件,在 excel 等表格處理軟件中打開。

按照以下代碼添加列名和調(diào)整序列號(hào),即可輸出與表格十分相近的格式:

甚至在 pandas 中,只需要通過簡(jiǎn)單的一行代碼即可輸出為 .xlsx 格式的文件,直接在 Excel 中打開:dataframe.to_excel('score.xlsx')

如果運(yùn)行后返回錯(cuò)誤 no module named 'openpyxl',只需在終端通過 pip install openpyxl 安裝相應(yīng)的模塊,重新運(yùn)行即可。完成后的文件會(huì)出現(xiàn)在左側(cè)的文件欄中,下載到本地即可通過 Excel 或其他表格軟件打開。

Excel 中打開的效果:

使用 Pandas 計(jì)算總分

在原始的成績(jī)數(shù)據(jù)中,我們只有語數(shù)英和理綜的成績(jī),而還沒有計(jì)算總分。雖然我們可以在已導(dǎo)出的 CSV 文件中,另外在 Excel 新添一欄計(jì)算總分,但 Python 中同樣可以將這一程序以簡(jiǎn)單的一段代碼完成:

輸出的中文數(shù)據(jù)不對(duì)齊,怎么辦?

由于 Pandas 的初始字符寬度默認(rèn)為英文,DataFrame 列名含有中文時(shí),Pandas 就會(huì)出現(xiàn)列名和內(nèi)容沒有對(duì)齊的情況。我們只要把 Pandas 的兩項(xiàng)默認(rèn)設(shè)置為 True 即可:

根據(jù)學(xué)號(hào)順序排列

在原始的成績(jī)數(shù)據(jù)中,我們可以發(fā)現(xiàn)學(xué)號(hào)其實(shí)是亂序的,這或許不一定符合學(xué)校的格式要求。如果需要將成績(jī)數(shù)據(jù)根據(jù)學(xué)號(hào)進(jìn)行順序排列,同樣也只需要一行代碼即可解決:

【小作業(yè)】嘗試根據(jù) dataframe.sort_values(),輸出上圖的排序效果。打開 scoreData.py 查看參考答案:https://d1590a0dfb-share.lightly.teamcode.com

返回個(gè)別班級(jí)的所有學(xué)生成績(jī)

為了更方便地查看各班級(jí)的成績(jī),我們其實(shí)還可以通過dataframe.loc[] 函數(shù)查找并返回特定值的內(nèi)容。以 2 班的成績(jī)?yōu)槔覀冎恍枰斎?classResult = dataframe.loc[dataframe['班級(jí)'] == 2] 即可返回僅有 2 班成績(jī)的表格:

【小作業(yè)】嘗試根據(jù)所學(xué)的內(nèi)容,輸出上圖的以總分逆序排列的 2 班成績(jī)。打開 scoreData.py 查看參考答案:https://d1590a0dfb-share.lightly.teamcode.com

刪除和合并列表

假設(shè)英語老師發(fā)現(xiàn)不小心給錯(cuò)了另一個(gè)年級(jí)的分?jǐn)?shù),希望將英語分?jǐn)?shù)刪掉再重新輸入,應(yīng)該怎么辦呢?Pandas 中可以通過 pd.drop()pd.merge() 兩個(gè)函數(shù)刪除和合并數(shù)據(jù)。

首先,使用 pd.drop() 將錯(cuò)誤的行列刪掉:df.drop('英語', inplace=True, axis=1)【注意】需要把這行代碼放在總分 dataframe.iloc 函數(shù)前,否則總分依舊包含英語成績(jī)。

英語老師隨后給了新的分?jǐn)?shù),因?yàn)榉謹(jǐn)?shù)是根據(jù)學(xué)號(hào)盲改的,所以英語老師也給了含學(xué)號(hào)和學(xué)生成績(jī)的 Excel 文件。上傳后,我們可以通過以下代碼讀取合并新舊數(shù)據(jù):

擴(kuò)展作業(yè)

嘗試結(jié)合 Python 編程的基本 input() 函數(shù)以及文章中的各個(gè)知識(shí)點(diǎn),制作一個(gè)可以通過學(xué)號(hào)查找學(xué)生各學(xué)科成績(jī)以及總分的簡(jiǎn)易程序。打開 scoreData.py 查看參考答案:https://d1590a0dfb-share.lightly.teamcode.com

恭喜你來到文章的尾聲!在學(xué)習(xí)使用 Python 處理數(shù)據(jù)的時(shí)候,我其實(shí)思考過:明明已經(jīng)有了現(xiàn)成的 Excel 辦公軟件,我們究竟為什么需要學(xué)習(xí) Python 甚至編程?然而,在我學(xué)習(xí) Python 的過程中,我發(fā)現(xiàn):與廣泛使用的第三方軟件相比,我們可以通過編程定制更符合自身需求的程序,同時(shí)去掉不必要的繁瑣內(nèi)容,甚至還不必?fù)?dān)心第三方軟件隨著時(shí)間的流逝,逐漸停運(yùn)或無法滿足我的特定需求。

隨著編程越來越普及化,未來的計(jì)算機(jī)必備技能除了 Office 三件套甚至 PS、視頻剪輯外,相信編程也會(huì)逐漸加入隊(duì)列。對(duì)許多人而言,學(xué)習(xí)編程也許并非易事,但這種技能終究會(huì)像語文、數(shù)學(xué)、英語等過去我們?cè)鴮W(xué)習(xí)的基礎(chǔ)科目一樣,成為我們的知識(shí)基礎(chǔ),幫助我們更好的理解現(xiàn)代科技的運(yùn)作。


【Python 教程】使用 Pandas 整理數(shù)據(jù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
仙桃市| 阳原县| 长海县| 资阳市| 静宁县| 玉溪市| 东海县| 佛冈县| 喀喇沁旗| 定兴县| 綦江县| 徐州市| 七台河市| 文山县| 中方县| 任丘市| 石楼县| 九寨沟县| 山丹县| 洛南县| 六安市| 平顺县| 积石山| 临泉县| 揭阳市| 哈密市| 松桃| 洪洞县| 微博| 台中县| 洪洞县| 江安县| 洛扎县| 江口县| 三门县| 江北区| 宁明县| 三门县| 玉田县| 康定县| 平安县|