您好,登錄后才能下訂單哦!
學習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))
這樣就可以創(chuàng)建一個簡單的Series數(shù)組了,數(shù)組的左邊是它的索引,右邊是它的值
,因此它有index和values方法
更改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é)果如下
pandas讀取外部文件
pandas提供了很多讀取數(shù)據(jù)的方法,比如:
鄭州婦科醫(yī)院 http://fk.zyfuke.com/
這里我以csv文件舉例
import pandas as pd
# pandas 讀取文件
t = pd.read_csv("./demo.csv")
print(t)
csv文件結(jié)果如下
我們這組的數(shù)據(jù)存在csv文件中,我們直接使用pd.read_csv即可
和我們想象中的有些差別,我們以為他會是一個Series類型,但實際上它是一個DataFrame數(shù)組類型。
免責聲明:本站發(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)容。