一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

介紹一款進階版的 Pandas 數(shù)據(jù)分析神器:Polars

 阿明哥哥資料區(qū) 2022-04-12
相信對于不少的數(shù)據(jù)分析從業(yè)者來說呢,用的比較多的是Pandas以及SQL這兩種工具,Pandas不但能夠?qū)?shù)據(jù)集進行清理與分析,并且還能夠繪制各種各樣的炫酷的圖表,但是遇到數(shù)據(jù)集很大的時候要是還使用Pandas來處理顯然有點力不從心。
圖片
今天小編就來介紹另外一個數(shù)據(jù)處理與分析工具,叫做Polars,它在數(shù)據(jù)處理的速度上更快,當然里面還包括兩種API,一種是Eager API,另一種則是Lazy API,其中Eager APIPandas的使用類似,語法類似差不太多,立即執(zhí)行就能產(chǎn)生結(jié)果。
圖片
Lazy APISpark很相似,會有并行以及對查詢邏輯優(yōu)化的操作。

模塊的安裝與導(dǎo)入

我們先來進行模塊的安裝,使用pip命令
pip install polars
在安裝成功之后,我們分別用PandasPolars來讀取數(shù)據(jù),看一下各自性能上的差異,我們導(dǎo)入會要用到的模塊
import pandas as pd
import polars as pl
import matplotlib.pyplot as plt
%matplotlib inline

Pandas讀取文件

本次使用的數(shù)據(jù)集是某網(wǎng)站注冊用戶的用戶名數(shù)據(jù),總共有360MB大小,我們先用Pandas模塊來讀取該csv文件
%%time 
df = pd.read_csv('users.csv')
df.head()
output
圖片
可以看到用Pandas讀取CSV文件總共花費了12秒的時間,數(shù)據(jù)集總共有兩列,一列是用戶名稱,以及用戶名稱重復(fù)的次數(shù)“n”,我們來對數(shù)據(jù)集進行排序,調(diào)用的是sort_values()方法,代碼如下
%%time 
df.sort_values('n', ascending=False).head()
output
圖片

Polars來讀取操作文件

下面我們用Polars模塊來讀取并操作文件,看看所需要的多久的時間,代碼如下
%%time 
data = pl.read_csv('users.csv')
data.head()
output
圖片
可以看到用polars模塊來讀取數(shù)據(jù)僅僅只花費了730毫秒的時間,可以說是快了不少的,我們根據(jù)“n”這一列來對數(shù)據(jù)集進行排序,代碼如下
%%time
data.sort(by='n', reverse=True).head()
output
圖片
對數(shù)據(jù)集進行排序所消耗的時間為1.39秒,接下來我們用polars模塊來對數(shù)據(jù)集進行一個初步的探索性分析,數(shù)據(jù)集總共有哪些列、列名都有哪些,我們還是以熟知“泰坦尼克號”數(shù)據(jù)集為例
df_titanic = pd.read_csv('titanic.csv')
df_titanic.columns
output
['PassengerId',
 'Survived',
 'Pclass',
 'Name',
 'Sex',
 'Age',
 ......]
Pandas一樣輸出列名調(diào)用的是columns方法,然后我們來看一下數(shù)據(jù)集總共是有幾行幾列的,
df_titanic.shape
output
(891, 12)
看一下數(shù)據(jù)集中每一列的數(shù)據(jù)類型
df_titanic.dtypes
output
[polars.datatypes.Int64,
 polars.datatypes.Int64,
 polars.datatypes.Int64,
 polars.datatypes.Utf8,
 polars.datatypes.Utf8,
 polars.datatypes.Float64,
......]

填充空值與數(shù)據(jù)的統(tǒng)計分析

我們來看一下數(shù)據(jù)集當中空值的分布情況,調(diào)用null_count()方法
df_titanic.null_count()
output
圖片
我們可以看到“Age”以及“Cabin”兩列存在著空值,我們可以嘗試用平均值來進行填充,代碼如下
df_titanic['Age'] = df_titanic['Age'].fill_nan(df_titanic['Age'].mean())
計算某一列的平均值只需要調(diào)用mean()方法即可,那么中位數(shù)、最大/最小值的計算也是同樣的道理,代碼如下
print(f'Median Age: {df_titanic['Age'].median()}')
print(f'Average Age: {df_titanic['Age'].mean()}')
print(f'Maximum Age: {df_titanic['Age'].max()}')
print(f'Minimum Age: {df_titanic['Age'].min()}')
output
Median Age: 29.69911764705882
Average Age: 29.699117647058817
Maximum Age: 80.0
Minimum Age: 0.42

數(shù)據(jù)的篩選與可視化

我們篩選出年齡大于40歲的乘客有哪些,代碼如下
df_titanic[df_titanic['Age'] > 40]
output
圖片
最后我們簡單地來繪制一張圖表,代碼如下
fig, ax = plt.subplots(figsize=(10, 5))
ax.boxplot(df_titanic['Age'])
plt.xticks(rotation=90)
plt.xlabel('Age Column')
plt.ylabel('Age')
plt.show()
output
圖片
總體來說呢,polars在數(shù)據(jù)分析與處理上面和Pandas模塊有很多相似的地方,其中會有一部分的API存在著差異,感興趣的童鞋可以參考其官網(wǎng):https://www./
圖片

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    久久少妇诱惑免费视频| 午夜日韩在线观看视频| 日韩精品一区二区亚洲| 99福利一区二区视频| 男人和女人草逼免费视频| 大屁股肥臀熟女一区二区视频| 国产精品日韩精品一区| 亚洲欧洲在线一区二区三区| 日韩特级黄片免费在线观看| 久热99中文字幕视频在线| 亚洲国产四季欧美一区| 亚洲男女性生活免费视频| 亚洲妇女黄色三级视频| 精品亚洲av一区二区三区| 欧美特色特黄一级大黄片| 精品熟女少妇一区二区三区| 精品香蕉一区二区在线| 中文字幕一二区在线观看| 欧美日韩一区二区三区色拉拉| 久久福利视频在线观看| 国产欧美一区二区另类精品| 亚洲一区精品二人人爽久久| 国产精品亚洲欧美一区麻豆| 有坂深雪中文字幕亚洲中文| 国产色第一区不卡高清| 韩日黄片在线免费观看| 99久久婷婷国产亚洲综合精品| 久久精品国产第一区二区三区| 狠狠做深爱婷婷久久综合| 欧美激情中文字幕综合八区| 国产免费一区二区三区av大片| 日本婷婷色大香蕉视频在线观看| 性欧美唯美尤物另类视频| 国内精品伊人久久久av高清| 免费黄片视频美女一区| 久久精品亚洲情色欧美| 久久青青草原中文字幕| 丰满熟女少妇一区二区三区| 精品国产亚洲av久一区二区三区| 欧美日韩国产二三四区| 中文字幕乱子论一区二区三区|