溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python數(shù)據(jù)分析:pandas學習之Series數(shù)組

發(fā)布時間:2020-07-28 12:11:55 來源:網(wǎng)絡(luò) 閱讀:288 作者:nineteens 欄目:編程語言

  學習pandas需要一些numpy學習基礎(chǔ):numpy學習總結(jié)

  雖然numpy已經(jīng)可以結(jié)合matplotlib解決我們數(shù)據(jù)分析的問題,那么pandas學習的目的在什么地方呢?

  numpy 能夠幫我們處理數(shù)值型數(shù)據(jù),但是這還不夠

  很多時候,我們數(shù)據(jù)除了數(shù)值之外,還有字符串,時間序列等

  比如:我們通過爬蟲獲取到了存儲在數(shù)據(jù)庫中的數(shù)據(jù)

  所以, numpy能夠幫助我們處理數(shù)值,但是pandas處理處理數(shù)值之外(基于numpy),還能夠幫助我們處理其他類型的數(shù)據(jù)

  pandas常用的數(shù)據(jù)類型

  1.Series一維, 帶標簽(索引)數(shù)組

  2. DataFrame二維, Series容器

  pandas的Series學習

  創(chuàng)建一個Series數(shù)組

  import pandas as pd

  import numpy as np

  # 創(chuàng)建長度為10的Series數(shù)組

  t = pd.Series(np.arange(10))

  

python數(shù)據(jù)分析:pandas學習之Series數(shù)組


  這樣就可以創(chuàng)建一個簡單的Series數(shù)組了,數(shù)組的左邊是它的索引,右邊是它的值

  ,因此它有index和values方法

  

python數(shù)據(jù)分析:pandas學習之Series數(shù)組


  更改Series數(shù)組的索引值

  其中index=list(string.ascii_uppercase[:10])表示的是取前10位大寫字母來代替索引

  在這里插入代碼片

  注意: pd.Series能夠干什么,能夠傳入什么類型的數(shù)據(jù)讓其變?yōu)閟eries結(jié)構(gòu),index是什么?

  在什么位置,對于我們常見的數(shù)據(jù)庫或者ndarray來說,index是什么,如何給一組數(shù)據(jù)指定index?

  在pd.Series()中的參數(shù)可以傳入一個字典,也能傳入一個列表,元組等

  重新給其指定其他的索引之后,如果能夠?qū)?yīng)上,就取其值,如果不能,就為nan, 此時數(shù)據(jù)的類型就為float類型了,因為numpy中的nan為float類型,pandas會自動根據(jù)數(shù)據(jù)類型更改Series的dtype類型,若要修改此類型,使用.astype即可修改

  pandas之Series切片和索引

  t = pd.Series(np.arange(10), index=list(string.ascii_uppercase[:10]))

  t[2:10:2] # 從第三個開始以步長為2,到第10個為止

  t[[2, 3, 6]] # 選擇第三個, 第四個, 和第七個的值

  t["F"] # 選擇索引為F的值

  結(jié)果如下:

  切片:在"[]"中直接傳入start end 或者步長即可

  索引:一個的時候傳入序號或者index,多個的時候傳入序號或者index的列表

  pandas之Series的索引和值

  對于一個陌生的series類型,我們?nèi)绾沃浪乃饕途唧w的值呢:

  t.index ==> 返回數(shù)組的索引,是一個列表類型,可以進行遍歷,也可進行強制類型轉(zhuǎn)換,如: tuple(t.index) # 進行強制類型轉(zhuǎn)換

  t.values ==> 返回數(shù)組的值,是一個列表類型,可以進行遍歷,也可進行強制類型轉(zhuǎn)換,如: tuple(t.values)

  Series對象本質(zhì)上由兩個數(shù)組構(gòu)成。

  一個數(shù)組構(gòu)成對象的鍵(index,索引),一個數(shù)組構(gòu)成對象的值(values),鍵 -> 值

  ndarray的很多方法都可以運用于series類型,比如argmax,clip

  series具有where方法,但是結(jié)果和ndarray不同,具體方法可以查看官方文檔np.Series.where使用教程

  pandas讀取mongodb數(shù)據(jù)

  這里由于我的mongodb里面沒有數(shù)據(jù),所以我就手動添加了一些數(shù)據(jù)(0.0)

  from pymongo import MongoClient

  import pandas as pd

  client = MongoClient()

  collection = client["xin"]["test"]

  data = list(collection.find())

  a = ["hello", "world"]

  data.append(a)

  t1 = data[0]

  t1 = pd.Series(t1)

  print(t1)

  結(jié)果如下

  

python數(shù)據(jù)分析:pandas學習之Series數(shù)組


  pandas讀取外部文件

  pandas提供了很多讀取數(shù)據(jù)的方法,比如:

  鄭州婦科醫(yī)院 http://fk.zyfuke.com/

python數(shù)據(jù)分析:pandas學習之Series數(shù)組


  這里我以csv文件舉例

  import pandas as pd

  # pandas 讀取文件

  t = pd.read_csv("./demo.csv")

  print(t)

  csv文件結(jié)果如下

  

python數(shù)據(jù)分析:pandas學習之Series數(shù)組


  我們這組的數(shù)據(jù)存在csv文件中,我們直接使用pd.read_csv即可

  和我們想象中的有些差別,我們以為他會是一個Series類型,但實際上它是一個DataFrame數(shù)組類型。


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI