欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pandas實(shí)戰(zhàn):分析三國(guó)志人物示例實(shí)現(xiàn)

 更新時(shí)間:2023年01月19日 10:52:58   作者:xchenhao  
這篇文章主要介紹了pandas實(shí)戰(zhàn):分析三國(guó)志人物示例實(shí)現(xiàn),本文章內(nèi)容詳細(xì),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,需要的朋友可以參考下

簡(jiǎn)介

背景

Pandas 是 Python 的一個(gè)工具庫(kù),用于數(shù)據(jù)分析。

由 AQR Capital Management 于 2008 年 4 月開(kāi)發(fā),2009 年開(kāi)源,最初被作為金融數(shù)據(jù)分析工具而開(kāi)發(fā)出來(lái)。

Pandas 名稱(chēng)來(lái)源于 panel data(面板數(shù)據(jù))和 Python data analysis(Python 數(shù)據(jù)分析)。

適用于金融、統(tǒng)計(jì)等數(shù)據(jù)分析領(lǐng)域。

特點(diǎn):

兩大數(shù)據(jù)結(jié)構(gòu)

Series 和 DataFrame

(1)Series:一維數(shù)據(jù)(列+索引)

pandas.Series(['東漢', '馬騰', '?', 212], index=['國(guó)家', '姓名', '出生年份', '逝世年份'])

series

(2)DataFrame:二維數(shù)據(jù)(表格:多個(gè)列+行/列索引)

Series 和 DataFrame

pandas.DataFrame([
    ['東漢', 300],
    ['魏國(guó)', 800],
    ['蜀國(guó)', 400],
    ['吳國(guó)', 600],
    ['西晉', 1000]
], columns=['國(guó)家', '國(guó)力'])

dataframe

安裝

如果你使用的是數(shù)據(jù)科學(xué)的 Python 發(fā)行版:Anaconda,可以使用 conda 安裝

conda install pandas

如果是普通的 Python 環(huán)境,可以使用 pip 安裝

pip install pandas

實(shí)戰(zhàn)

我們先看看數(shù)據(jù)長(zhǎng)啥樣,數(shù)據(jù)存在 sanguo.csv 文檔中

$ head sanguo.csv

head

(1)導(dǎo)入模塊

import pandas as pd

(2)讀取 csv 數(shù)據(jù)

# 當(dāng)前目錄下的 sanguo.csv 文件,na_values 指定哪些值為空
df = pd.read_csv('./sanguo.csv', na_values=['na', '-', 'N/A', '?'])

1)查看數(shù)據(jù)

# 查看前 5 條
df.head(5)
# NaN 為空值

df.head()

# 查看后 5 條
df.tail(5)

df.tail()

2)查看數(shù)據(jù)概況

df.dtypes
# 查看數(shù)據(jù)類(lèi)型

dtypes

df.info()
# 有 25 行,5 列
# 各列的名稱(chēng)(kindom、name、birth、die、character)、非空數(shù)目、數(shù)據(jù)類(lèi)型

df.info()

df.describe()
# 查看數(shù)值型列統(tǒng)計(jì)值:總數(shù)、平均值、標(biāo)準(zhǔn)差、最小值、25%/50%/75% 分位數(shù)、最大值

df.describe

3)數(shù)據(jù)操作

設(shè)置列名

df.columns = ['國(guó)家', '姓名', '出生年份', '逝世年份', '角色']
df.head()

設(shè)置列名

添加新列

# 計(jì)算年齡
df['年齡'] = df['逝世年份'] - df['出生年份']
df.head(10)

添加新列

計(jì)算列平均值、中位數(shù)、眾數(shù)、最/小值

平均值:df['年齡'].mean()

中位數(shù):df['年齡'].median()

眾數(shù):df['年齡'].mode()

最大值:df['年齡'].max()

最小值:df['年齡'].min()

列篩選

# 篩選年輪小于 50 的數(shù)據(jù)
df[df['年齡'] < 50]

篩選數(shù)據(jù)

# 篩選曹姓的數(shù)據(jù)
df[df['姓名'].str.startswith('曹')]

篩選數(shù)據(jù)

分組

df.groupby('國(guó)家')['姓名'].count()
# 類(lèi)似于 SQL: SELECT 國(guó)家, COUNT(姓名) FROM x GROUP BY 國(guó)家

分組

apply 函數(shù)

df['狀態(tài)'] = df['年齡'].apply(lambda x: '長(zhǎng)壽' if isinstance(x, (int, float)) and x > 50 else '一般')
df.head()

apply

取數(shù)據(jù):loc、iloc

df.loc[4]

取第 5 行數(shù)據(jù)(索引從 0 開(kāi)始)

loc

df.loc[4:5]

取第 5~6 行數(shù)據(jù)

loc

df.loc[4, '姓名']df.iloc[4, 1]取第 5 行姓名列或第 5 行第 2 列

loc

df.loc[4, ['姓名', '年齡']] df.iloc[4, [1, 5]]取第 5 行姓名、年齡列或第 5 行第 2 列、第 6 列

loc

df.loc[4:5, ['姓名', '年齡']]df.iloc[[4, 5], [1, 5]]df.iloc[4:6, [1, 5]]取第 5~6 行姓名、年齡列或取第 5~6 行第 2 列、第 6 列

loc

df.iloc[4:9, 1:4]取 5~10 列第 2~5 列

iloc

追加、合并數(shù)據(jù)

concat

# 創(chuàng)建列
newpeople = pd.Series(['東漢', '馬騰', '?', 212, '?'], index=['國(guó)家', '姓名', '出生年份', '逝世年份', '年齡'])

# 將 Series 轉(zhuǎn)為 DataFrame,并對(duì) DataFrame 轉(zhuǎn)置(列轉(zhuǎn)行)
newpeople = newpeople.to_frame().T

# 追加行(axis=0),重置索引(ignore_index=True)
df2 = pd.concat([df, newpeople], axis=0, ignore_index=True)
df2.tail()

追加數(shù)據(jù)

merge

# 創(chuàng)建表格
kindom_power = pd.DataFrame([
    ['東漢', 300],
    ['魏國(guó)', 800],
    ['蜀國(guó)', 400],
    ['吳國(guó)', 600],
    ['西晉', 1000]
], columns=['國(guó)家', '國(guó)力'])

# 按國(guó)家列進(jìn)行兩個(gè)表格(左 df,右 kindom_power)合并
df3 = pd.merge(left=df, right=kindom_power, on='國(guó)家')
df3.head(10)

merge

4)導(dǎo)出數(shù)據(jù)

# 寫(xiě)入 sanguo_result.csv 中,不輸出索引值
df.to_csv('sanguo_result.csv', index=False)

csv

到此這篇關(guān)于pandas實(shí)戰(zhàn):分析三國(guó)志人物示例實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)pandas實(shí)戰(zhàn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 用python寫(xiě)個(gè)自動(dòng)SSH登錄遠(yuǎn)程服務(wù)器的小工具(實(shí)例)

    用python寫(xiě)個(gè)自動(dòng)SSH登錄遠(yuǎn)程服務(wù)器的小工具(實(shí)例)

    下面小編就為大家?guī)?lái)一篇用python寫(xiě)個(gè)自動(dòng)SSH登錄遠(yuǎn)程服務(wù)器的小工具(實(shí)例)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Python如何統(tǒng)計(jì)大小寫(xiě)字母?jìng)€(gè)數(shù)和數(shù)字個(gè)數(shù)

    Python如何統(tǒng)計(jì)大小寫(xiě)字母?jìng)€(gè)數(shù)和數(shù)字個(gè)數(shù)

    這篇文章主要介紹了Python如何統(tǒng)計(jì)大小寫(xiě)字母?jìng)€(gè)數(shù)和數(shù)字個(gè)數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python序列的推導(dǎo)式實(shí)現(xiàn)代碼

    Python序列的推導(dǎo)式實(shí)現(xiàn)代碼

    推導(dǎo)式是可以從一個(gè)數(shù)據(jù)序列構(gòu)建另一個(gè)新的數(shù)據(jù)序列(的一種結(jié)構(gòu)體),是python的一種獨(dú)有特性,在python中共有三種推導(dǎo),列表推導(dǎo)式和字典推導(dǎo)式,集合推導(dǎo)式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-07-07
  • pyqt5 tablewidget 利用線程動(dòng)態(tài)刷新數(shù)據(jù)的方法

    pyqt5 tablewidget 利用線程動(dòng)態(tài)刷新數(shù)據(jù)的方法

    今天小編就為大家分享一篇pyqt5 tablewidget 利用線程動(dòng)態(tài)刷新數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • python制作英語(yǔ)翻譯小工具代碼實(shí)例

    python制作英語(yǔ)翻譯小工具代碼實(shí)例

    這篇文章主要介紹了python制作英語(yǔ)翻譯小工具代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Python文本終端GUI框架示例詳細(xì)講解

    Python文本終端GUI框架示例詳細(xì)講解

    GUI,全稱(chēng)為圖形用戶界面,又稱(chēng)為圖形用戶接口,是一種人與計(jì)算機(jī)通信的界面顯示格式。那么Python常用GUI框架有哪些呢?我們來(lái)看看具體介紹
    2022-11-11
  • 三步實(shí)現(xiàn)Django Paginator分頁(yè)的方法

    三步實(shí)現(xiàn)Django Paginator分頁(yè)的方法

    這篇文章主要介紹了三步實(shí)現(xiàn)Django Paginator分頁(yè)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 盤(pán)點(diǎn)十個(gè)超級(jí)好用的高級(jí)Python腳本

    盤(pán)點(diǎn)十個(gè)超級(jí)好用的高級(jí)Python腳本

    這篇文章主要介紹了盤(pán)點(diǎn)十個(gè)超級(jí)好用的高級(jí)Python腳本,我們經(jīng)常會(huì)遇到一些大小問(wèn)題,其中有很多的問(wèn)題,都是可以使用一些簡(jiǎn)單的Python代碼就能解決,需要的朋友可以參考下
    2023-04-04
  • Python使用PySimpleGUI打造輕量級(jí)計(jì)算器

    Python使用PySimpleGUI打造輕量級(jí)計(jì)算器

    PySimpleGUI是一個(gè)跨平臺(tái)的Python GUI庫(kù),它支持Windows、Mac和Linux等多種操作系統(tǒng),本文將利用PySimpleGUI打造一個(gè)輕量級(jí)計(jì)算器,希望對(duì)大家有所幫助
    2024-03-03
  • 詳解一種用django_cache實(shí)現(xiàn)分布式鎖的方式

    詳解一種用django_cache實(shí)現(xiàn)分布式鎖的方式

    這篇文章主要介紹了詳解一種用django_cache實(shí)現(xiàn)分布式鎖的方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評(píng)論