国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

??數(shù)據(jù)科學(xué)-Pandas、Numpy、Matplotlib秘籍之精煉總結(jié)

Zhuxy / 1772人閱讀

前言:


先感受一下數(shù)據(jù)科學(xué)的魅力,上圖是在Smart Dubai 2017 GITEX科技周展臺(tái)上推出Smart Decision-Making Platform(智能決策平臺(tái)),于10月8日至12日在迪拜世界貿(mào)易中心舉行。游客可以通過(guò)一個(gè)“沉浸式的空間”將數(shù)據(jù)可視化,讓他們了解迪拜的未來(lái)。讓參觀者可以在現(xiàn)場(chǎng)查閱觀看全市數(shù)據(jù),這意味著迪拜將成為了世界上第一個(gè)與公眾分享實(shí)時(shí)實(shí)時(shí)數(shù)據(jù)的城市,同時(shí)還可以預(yù)測(cè)未來(lái)十年的發(fā)展。

最近,很多小伙伴在后臺(tái)私信我,咨詢有沒(méi)有數(shù)據(jù)處理及可視化的相關(guān)系統(tǒng)教程?我的回復(fù)是,這些庫(kù)只是工具,無(wú)需花費(fèi)很長(zhǎng)的時(shí)間牢記這些命令的使用,學(xué)習(xí)一遍之后整理好筆記即可,遺忘之時(shí)再查找這些筆記使用即可

本文是博主本人結(jié)合自己的使用經(jīng)驗(yàn)以及各大博主的分享精煉匯總而成,耗時(shí)進(jìn)半個(gè)月的時(shí)候,翻閱博客和參考資料無(wú)數(shù),最后精選了最實(shí)用、常用、好用的“Pandas、Numpy、Matplotlib”三大神兵利器的方法使用攻略


文章目錄

Pandas精煉總結(jié)

1.屬性值中存在缺失,將變量轉(zhuǎn)換成Pandas可操作類型數(shù)據(jù)的方法

當(dāng)某個(gè)屬性數(shù)據(jù)中存在空值(NaN),則該屬性數(shù)據(jù)類型為object,使用convert_dtypes()將Series轉(zhuǎn)換為支持的dtypes

1.convert_dtypes()處理DataFrame類型數(shù)據(jù),示例如下:

# dataframe 變量類型自動(dòng)轉(zhuǎn)換df = pd.DataFrame(    {        "a": pd.Series([1, 2, 3], dtype=np.dtype("int32")),        "b": pd.Series(["x", "y", "z"], dtype=np.dtype("O")),        "c": pd.Series([True, False, np.nan], dtype=np.dtype("O")),        "d": pd.Series(["h", "i", np.nan], dtype=np.dtype("O")),        "e": pd.Series([10, np.nan, 20], dtype=np.dtype("float")),        "f": pd.Series([np.nan, 100.5, 200], dtype=np.dtype("float")),    })print(df.dtypes)dfn = df.convert_dtypes()print(dfn.dtypes)

2.convert_dtypes()處理Series變量類型數(shù)據(jù),示例如下:

# Series 變量類型自動(dòng)轉(zhuǎn)換s = pd.Series(["a", "b", np.nan])print(s.dtypes)sn = s.convert_dtypes()print(sn.dtypes)

2.為數(shù)據(jù)表格添加顏色特性,實(shí)現(xiàn)更好可視化的方法

pandas可通過(guò)添加顏色條件,讓表格數(shù)據(jù)凸顯出統(tǒng)計(jì)特性。

import pandas as pddf = pd.read_csv("test.csv")

1.Fare變量值呈現(xiàn)條形圖,以清楚看出各個(gè)值得大小比較,可直接使用bar,示例如下:

df.style.bar("Fare",vmin=0)

2.讓Age變量呈現(xiàn)背景顏色的梯度變化,以體驗(yàn)映射的數(shù)值大小,那么可直接使用background_gradient,深顏色代表數(shù)值大,淺顏色代表數(shù)值小,示例如下:

df.style.background_gradient("Greens",subset="Age")

3.讓所有缺失值都高亮出來(lái),可使用highlight_null,示例如下:

df.style.highlight_null()

4.pandasstyle條件格式,組合用法非常簡(jiǎn)單,示例如下:

df.style.bar("Fare",vmin=0).background_gradient("Greens",subset="Age").highlight_null()

3.Pandas中數(shù)值實(shí)現(xiàn)函數(shù)映射轉(zhuǎn)換的方法

使用pd.transform(func,axis)函數(shù):

  • func是指定用于處理數(shù)據(jù)的函數(shù),它可以是普通函數(shù)字符串函數(shù)名稱函數(shù)列表軸標(biāo)簽映射函數(shù)的字典
  • axis是指要應(yīng)用到哪個(gè)軸,0代表列,1代表行。

1.func=“普通函數(shù)”,示例如下:

df = pd.DataFrame({"A": [1,2,3], "B": [10,20,30] })def plus_10(x):    return x+10df.transform(plus_10)# df.transform(lambda x: x+10)  等價(jià)寫法

2.func=“內(nèi)置的字符串函數(shù)”,示例如下:

df = pd.DataFrame({"A": [1,2,3], "B": [10,20,30] })df.transform("sqrt")

3.func=“多個(gè)映射函數(shù)”,示例如下:

df = pd.DataFrame({"A": [1,2,3], "B": [10,20,30] })df.transform([np.sqrt, np.exp])

4.func=“指定軸位置的映射函數(shù)”,示例如下:

df = pd.DataFrame({"A": [1,2,3], "B": [10,20,30] })df.transform({    "A": np.sqrt,    "B": np.exp,})

4.屬性值中出現(xiàn)長(zhǎng)列表或字符串形式的數(shù)據(jù),實(shí)現(xiàn)分割處理的方法

工作中,比如用戶畫像的數(shù)據(jù)中也會(huì)遇到,客戶使用的app類型就會(huì)以這種長(zhǎng)列表的形式或者以逗號(hào)隔開(kāi)的字符串形式展現(xiàn)出來(lái)

1.使用explode()這個(gè)方法即可,一般我們會(huì)在后面跟一個(gè)去重的方法,explode()支持列表元組Seriesnumpyndarray類型數(shù)據(jù),示例如下:

df.explode("愛(ài)好").drop_duplicates()

2.當(dāng)長(zhǎng)數(shù)據(jù)不是explode能夠處理的數(shù)據(jù)類型時(shí),使用Series.str.split()分割字符串的方法將其轉(zhuǎn)換為列表格式后處理,然后再進(jìn)行explode即可,示例如下:

df["愛(ài)好"] = df["愛(ài)好"].str.split()

df.explode("愛(ài)好").drop_duplicates()

5.DataFrame數(shù)據(jù)之間拼接的方法

源數(shù)據(jù)如下:

df1 = pd.DataFrame({     "name"["A""B""C""D"]"math"[60,89,82,70]"physics"[6695,83,66]"chemistry"[61,91,77,70] })df2 = pd.DataFrame({     "name"["E""F""G""H"]"math"[66,95,83,66]"physics"[6089,82,70]"chemistry"[90,81,78,90] }

1.默認(rèn)情況下,它是沿axis=0垂直連接的,并且默認(rèn)情況下會(huì)保留df1和df2原來(lái)的索引。

pd.concat([df1,df2]

2.可以通過(guò)設(shè)置參數(shù)ignore_index=True,這樣索引就可以從0到n-1自動(dòng)排序了。

pd.concat([df1,df2],ignore_index = True

3.如果想要沿水平軸連接兩個(gè)DataFrame,可以設(shè)置參數(shù)axis=1

pd.concat([df1,df2],axis = 1

4.可以通過(guò)設(shè)置參數(shù)verify_integrity=True,將此設(shè)置True為時(shí),如果存在重復(fù)的索引,將會(huì)報(bào)錯(cuò)。

 pd.concat([df1,df2], verify_integrity=True)

6.DataFrame數(shù)據(jù)轉(zhuǎn)置的方法

dataframe都有的一個(gè)簡(jiǎn)單屬性,實(shí)現(xiàn)轉(zhuǎn)置功能。它在顯示describe時(shí)可以很好的搭配。

boston.describe().T.head(10)

7.統(tǒng)計(jì)屬性的數(shù)值分布頻率的方法

數(shù)據(jù)探索的時(shí)候,value_counts是使用很頻繁的函數(shù),它默認(rèn)是不統(tǒng)計(jì)空值的,但空值往往也是我們很關(guān)心的。如果想統(tǒng)計(jì)空值,可以將參數(shù)dropna設(shè)置為False

ames_housing = pd.read_csv("data/train.csv")print(ames_housing["FireplaceQu"].value_counts(dropna=False, normalize=True))

8.Pandas替換異常值的方法

異常值檢測(cè)是數(shù)據(jù)分析中常見(jiàn)的操作。使用clip函數(shù)可以很容易地找到變量范圍之外的異常值,并替換它們。

 age.clip(50, 60)

9.Pandas篩選數(shù)據(jù)的方法

源數(shù)據(jù)如下:

1.直接在dataframe的[]中寫篩選的條件或者組合條件,示例如下:

# 篩選出大于NOX這變量平均值的所有數(shù)據(jù),然后按NOX降序排序。df[df["NOX"]>df["NOX"].mean()].sort_values(by="NOX",ascending=False).head()

#篩選出大于NOX這變量平均值且CHAS屬性值=1的所有數(shù)據(jù),然后按NOX降序排序。df[(df["NOX"]>df["NOX"].mean())& (df["CHAS"] ==1)].sort_values(by="NOX",ascending=False).head()

2.loc按標(biāo)簽值(列名和行索引取值)訪問(wèn),iloc按數(shù)字索引訪問(wèn),均支持單值訪問(wèn)或切片查詢,loc還可以指定返回的列變量,示例如下:

# 按df["NOX"]>df["NOX"].mean()條件篩選出數(shù)據(jù),并篩選出指定CHAS變量,然后賦值=2df.loc[(df["NOX"]>df["NOX"].mean()),["CHAS"]] = 2

3.需要鎖定某些具體的值的,這時(shí)候就需要isin了。比如我們要限定NOX取值只能為0.538,0.713,0.437中時(shí),示例如下:

df.loc[df["NOX"].isin([0.538,0.713,0.437]),:].sample(5)

# 也可以做取反操作,在篩選條件前加`~`符號(hào)df.loc[~df["NOX"].isin([0.538,0.713,0.437]),:].sample(5)

4.pandas里實(shí)現(xiàn)字符串的模糊篩選,可以用.str.contains()來(lái)實(shí)現(xiàn),示例如下:

train.loc[train["Name"].str.contains("Mrs|Lily"),:].head()

10.DataFrame數(shù)據(jù)之間合并的方法

merge():對(duì)于擁有相同的鍵的兩個(gè)DataFrame對(duì)象,需要將其進(jìn)行有效的拼接,整合到一個(gè)對(duì)象。

def merge(left, right, how="inner", on=None, left_on=None, right_on=None,         left_index=False, right_index=False, sort=True,         suffixes=("_x", "_y"), copy=True, indicator=False,         validate=None)

主要參數(shù)介紹:

  • left:DataFrame對(duì)象;
  • right:DataFrame對(duì)象;
  • how連接方式,inner或outer,默認(rèn)是outer
  • on指定用于連接的鍵,必須存在于左右兩個(gè)DataFrame中
  • left_on:左側(cè)DataFrame中用于連接鍵的列名,當(dāng)左右對(duì)象列名不同但含義相同時(shí)使用
  • right_on:右側(cè)DataFrame中用于連接鍵的列名;
  • left_index使用左側(cè)DataFrame的行索引作為連接鍵(配合right_on)
  • right_index:使用右側(cè)DataFrame的行索引作為連接鍵(配合left_on);
  • sort對(duì)其按照連接鍵進(jìn)行排序

源數(shù)據(jù)為:

df1 = pd.DataFrame(np.random.randint(10, size=(3, 3)), columns=["A", "B", "C"])df2 = pd.DataFrame(np.random.randint(10, size=(2, 2)), columns=["A", "B"])

pd.merge(df1, df2, how="outer", on="B")

pd.merge(df1, df2, how="outer", left_on="B", right_on="A")

11.Pandas刪除重復(fù)項(xiàng)的方法

1.drop_duplicates():刪除對(duì)象dataframe中重復(fù)的行,重復(fù)通過(guò)參數(shù)subset指定。

def drop_duplicates(subset=None, keep="first", inplace=False, ignore_index=False)

主要參數(shù)介紹:

  • subset:指定的鍵(列),默認(rèn)為所有的列(即每行全部相同)
  • keep刪除重復(fù)項(xiàng),除了第1個(gè)(first)或者最后一個(gè)(last);
  • inplace:是否直接對(duì)原來(lái)的對(duì)象進(jìn)行修改,默認(rèn)為False,生成一個(gè)拷貝`;
  • ignore_index:是否重建索引;
df1 = pd.DataFrame(np.random.randint(10, size=(3, 3)), columns=["A", "B", "C"])df1.drop_duplicates("A")

2.unique():相比于drop_duplicates方法,unique()只針對(duì)于Series對(duì)象,類似于Set。 通常是對(duì)dataframe中提取某一鍵,變成Series,再去重,統(tǒng)計(jì)個(gè)數(shù)。

print(len(df1["A"].unique().tolist()))

12.Pandas數(shù)據(jù)排序的方法

sort_values():按照某個(gè)鍵進(jìn)行排序。 查看相同鍵時(shí)行的某些變化,如例子中在A相同時(shí)B、C的變化。

def sort_values(by, axis=0, ascending=True, kind="quicksort", na_position="last", ignore_index=False)

主要參數(shù)介紹:

  • by:字符串或字符串列表,指定按照哪個(gè)鍵/索引進(jìn)行排序;
  • axis:指定排序的軸;
  • ascending:升序或降序,默認(rèn)為升序;
  • kind指定排序方法,‘quicksort’, ‘mergesort’, ‘heapsort;
  • ignore_index:是否重建索引;
df1.sort_values(by="A")

13.Pandas數(shù)據(jù)采樣的方法

sample():對(duì)對(duì)象進(jìn)行采樣。 當(dāng)dataframe對(duì)象數(shù)據(jù)量太大,導(dǎo)致做實(shí)驗(yàn)過(guò)滿時(shí),可以抽取一部分進(jìn)行實(shí)驗(yàn),提高效率。

def sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)

主要參數(shù)介紹:

  • n:指定采樣的數(shù)量;
  • frac:指定采樣的比例,與n只能選擇其中一個(gè);
  • replace允許或不允許對(duì)同一行進(jìn)行多次采樣;
  • weights采樣的權(quán)重,默認(rèn)為“None”將導(dǎo)致相同的概率權(quán)重;
  • random_state:類似于seed作用;
  • axis指定采樣的軸,默認(rèn)為行;
df1.sample(n=3)

df1.sample(frac=0.1)

14.Pandas判斷和刪除缺失值的方法

1.isna():isna方法返回一個(gè)布爾對(duì)象,每個(gè)元素是否為NaN。

df1.isna()

2.isnull():當(dāng)數(shù)據(jù)量很大時(shí),上述很難觀察到某列是否存在缺失,此時(shí)可以用isnull()方法 。

 df1.isnull().all()  # 某列是否全部為NaN df1.isnull().any() # 某列是否出現(xiàn)NaN

3.dropna():dropna方法刪除含缺失值的行或列。

def dropna(axis=0, how="any", thresh=None, subset=None, inplace=False)

主要參數(shù)介紹:

  • axis:指定軸;
  • how參數(shù)為any時(shí),行或列(axis決定)出現(xiàn)NaN時(shí),就進(jìn)行刪除;為all時(shí),行或列全為NaN時(shí)才進(jìn)行刪除
  • thresh:閾值,要求不為NAN的個(gè)數(shù)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/119548.html

相關(guān)文章

  • ApacheCN 編程/大數(shù)據(jù)/數(shù)據(jù)科學(xué)/人工智能學(xué)習(xí)資源 2019.6

    摘要:請(qǐng)回復(fù)這個(gè)帖子并注明組織個(gè)人信息來(lái)申請(qǐng)加入。權(quán)限分配靈活,能者居之。數(shù)量超過(guò)個(gè),在所有組織中排名前。網(wǎng)站日超過(guò),排名的峰值為。導(dǎo)航歸檔社區(qū)自媒體平臺(tái)微博知乎專欄公眾號(hào)博客園簡(jiǎn)書合作侵權(quán),請(qǐng)聯(lián)系請(qǐng)抄送一份到贊助我們 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=...

    Bmob 評(píng)論0 收藏0
  • ApacheCN 學(xué)習(xí)資源匯總 2019.3

    摘要:主頁(yè)暫時(shí)下線社區(qū)暫時(shí)下線知識(shí)庫(kù)自媒體平臺(tái)微博知乎簡(jiǎn)書博客園合作侵權(quán),請(qǐng)聯(lián)系請(qǐng)抄送一份到特色項(xiàng)目中文文檔和教程與機(jī)器學(xué)習(xí)實(shí)用指南人工智能機(jī)器學(xué)習(xí)數(shù)據(jù)科學(xué)比賽系列項(xiàng)目實(shí)戰(zhàn)教程文檔代碼視頻數(shù)據(jù)科學(xué)比賽收集平臺(tái),,劍指,經(jīng)典算法實(shí)現(xiàn)系列課本課本描述 【主頁(yè)】 apachecn.org 【Github】@ApacheCN 暫時(shí)下線: 社區(qū) 暫時(shí)下線: cwiki 知識(shí)庫(kù) 自媒體平臺(tái) ...

    array_huang 評(píng)論0 收藏0
  • ApacheCN 學(xué)習(xí)資源匯總 2019.3

    摘要:主頁(yè)暫時(shí)下線社區(qū)暫時(shí)下線知識(shí)庫(kù)自媒體平臺(tái)微博知乎簡(jiǎn)書博客園合作侵權(quán),請(qǐng)聯(lián)系請(qǐng)抄送一份到特色項(xiàng)目中文文檔和教程與機(jī)器學(xué)習(xí)實(shí)用指南人工智能機(jī)器學(xué)習(xí)數(shù)據(jù)科學(xué)比賽系列項(xiàng)目實(shí)戰(zhàn)教程文檔代碼視頻數(shù)據(jù)科學(xué)比賽收集平臺(tái),,劍指,經(jīng)典算法實(shí)現(xiàn)系列課本課本描述 【主頁(yè)】 apachecn.org 【Github】@ApacheCN 暫時(shí)下線: 社區(qū) 暫時(shí)下線: cwiki 知識(shí)庫(kù) 自媒體平臺(tái) ...

    Prasanta 評(píng)論0 收藏0
  • ApacheCN 編程/大數(shù)據(jù)/數(shù)據(jù)科學(xué)/人工智能學(xué)習(xí)資源 2019.4

    摘要:我們是一個(gè)大型開(kāi)源社區(qū),旗下群共余人,數(shù)量超過(guò)個(gè),網(wǎng)站日超過(guò),擁有博客專家和簡(jiǎn)書程序員優(yōu)秀作者認(rèn)證。我們組織公益性的翻譯活動(dòng)學(xué)習(xí)活動(dòng)和比賽組隊(duì)活動(dòng),并和等國(guó)內(nèi)著名開(kāi)源組織保持良好的合作關(guān)系。 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=200); 我們是一個(gè)...

    tomorrowwu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<