中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

建設(shè)銀行 成都 招聘網(wǎng)站哈爾濱網(wǎng)絡(luò)seo公司

建設(shè)銀行 成都 招聘網(wǎng)站,哈爾濱網(wǎng)絡(luò)seo公司,公司怎么在百度做網(wǎng)站,建設(shè)簡單網(wǎng)站的圖紙pandas 庫概述pandas 提供了快速便捷處理結(jié)構(gòu)化數(shù)據(jù)的大量數(shù)據(jù)結(jié)構(gòu)和函數(shù)。自從2010年出現(xiàn)以來,它助使 Python 成為強(qiáng)大而高效的數(shù)據(jù)分析環(huán)境。pandas使用最多的數(shù)據(jù)結(jié)構(gòu)對象是 DataFrame,它是一個(gè)面向列(column-oriented)的二維表…

pandas 庫概述

pandas 提供了快速便捷處理結(jié)構(gòu)化數(shù)據(jù)的大量數(shù)據(jù)結(jié)構(gòu)和函數(shù)。自從2010年出現(xiàn)以來,它助使 Python 成為強(qiáng)大而高效的數(shù)據(jù)分析環(huán)境。pandas使用最多的數(shù)據(jù)結(jié)構(gòu)對象是 DataFrame,它是一個(gè)面向列(column-oriented)的二維表結(jié)構(gòu),另一個(gè)是 Series,一個(gè)一維的標(biāo)簽化數(shù)組對象。

pandas 兼具 NumPy 高性能的數(shù)組計(jì)算功能以及電子表格和關(guān)系型數(shù)據(jù)庫(如SQL)靈活的數(shù)據(jù)處理功能。它提供了復(fù)雜精細(xì)的索引功能,能更加便捷地完成重塑、切片和切塊、聚合以及選取數(shù)據(jù)子集等操作。數(shù)據(jù)操作、準(zhǔn)備、清洗是數(shù)據(jù)分析最重要的技能,pandas 是首選 python 庫之一。

個(gè)人覺得,學(xué)習(xí) pandas 還是最好在 anaconda 的 jupyter 環(huán)境下進(jìn)行,方便斷點(diǎn)調(diào)試分析,也方便一行行運(yùn)行代碼。

安裝 pandas

Windows/Linux系統(tǒng)環(huán)境下安裝

conda方式安裝

conda install pandas

pip3方式安裝

py -3 -m pip install --upgrade pandas    #Windows系統(tǒng)
python3 -m pip install --upgrade pandas    #Linux系統(tǒng)

pandas 庫使用

pandas 采用了大量的 NumPy 編碼風(fēng)格,但二者最大的不同是 pandas 是專門為處理表格和混雜數(shù)據(jù)設(shè)計(jì)的。而 NumPy 更適合處理統(tǒng)一的數(shù)值數(shù)組數(shù)據(jù)。

導(dǎo)入 pandas 模塊,和常用的子模塊 Series 和 DataFrame

import pands as pd
from pandas import Series,DataFrame

通過傳遞值列表來創(chuàng)建 Series,讓 pandas 創(chuàng)建一個(gè)默認(rèn)的整數(shù)索引:

s = pd.Series([1,3,5,np.nan,6,8])
s

輸出

0 1.0

1 3.0

2 5.0

3 NaN

4 6.0

5 8.0

dtype: float64

pandas數(shù)據(jù)結(jié)構(gòu)介紹

要使用 pandas,你首先就得熟悉它的兩個(gè)主要數(shù)據(jù)結(jié)構(gòu):Series 和 DataFrame。雖然它們并不能解決所有問題,但它們?yōu)榇蠖鄶?shù)應(yīng)用提供了一種可靠的、易于使用的基礎(chǔ)。

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

Series 是一種類似于一維數(shù)組的對象,它由一組數(shù)據(jù)(各種 NumPy 數(shù)據(jù)類型)以及一組與之相關(guān)的數(shù)據(jù)標(biāo)簽(即索引)組成。僅由一組數(shù)據(jù)即可產(chǎn)生最簡單的 Series。代碼示例:

import pandas as pd
obj = pd.Series([1,4,7,8,9])
obj

Series 的字符串表現(xiàn)形式為:索引在左邊,值在右邊。由于我們沒有為數(shù)據(jù)指定索引,于是會自動創(chuàng)建一個(gè) 0 到 N-1( N 為數(shù)據(jù)的長度)的整數(shù)型索引。也可以通過Series 的 values 和 index 屬性獲取其數(shù)組表示形式和索引對象,代碼示例:

obj.values
obj.index # like range(5)

輸出:

array([ 1, 4, 7, 8, 9])

RangeIndex(start=0, stop=5, step=1)

我們也希望所創(chuàng)建的 Series 帶有一個(gè)可以對各個(gè)數(shù)據(jù)點(diǎn)進(jìn)行標(biāo)記的索引,代碼示例:

obj2 = pd.Series([1, 4, 7, 8, 9],index=['a', 'b', 'c', 'd'])
obj2
obj2.index

輸出

a 1

b 4

c 7

d 8

e 9

dtype: int64

Index([‘a(chǎn)’, ‘b’, ‘c’, ‘d’, ‘e’], dtype=’object’)

與普通 NumPy 數(shù)組相比,你可以通過索引的方式選取 Series 中的單個(gè)或一組值,代碼示例:

obj2[['a', 'b', 'c']] 
obj2['a']=2
obj2[['a', 'b', 'c']]

[‘a(chǎn)’,’b’,’c]是索引列表,即使它包含的是字符串而不是整數(shù)。

使用 NumPy 函數(shù)或類似 NumPy 的運(yùn)算(如根據(jù)布爾型數(shù)組進(jìn)行過濾、標(biāo)量乘法、應(yīng)用數(shù)學(xué)函數(shù)等)都會保留索引值的鏈接,代碼示例:

obj2*2
np.exp(obj2)

還可以將 Series 看成是一個(gè)定長的有序字典,因?yàn)樗撬饕档綌?shù)據(jù)值的一個(gè)映射。它可以用在許多原本需要字典參數(shù)的函數(shù)中,代碼示例:

dict = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000,'Utah': 5000}
obj3 = pd.Series(dict)
obj3

輸出

Ohio 35000
Oregon 16000
Texas 71000
Utah 5000
dtype: int64

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

DataFrame 是一個(gè)表格型的數(shù)據(jù)結(jié)構(gòu),它含有一組有序的列,每列可以是不同的值類型(數(shù)值、字符串、布爾值等)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 組成的字典(共用同一個(gè)索引)。DataFrame 中的數(shù)據(jù)是以一個(gè)或多個(gè)二維塊存放的(而不是列表、字典或別的一維數(shù)據(jù)結(jié)構(gòu))。

雖然 DataFrame 是以二維結(jié)構(gòu)保存數(shù)據(jù)的,但你仍然可以輕松地將其表示為更高維度的數(shù)據(jù)(層次化索引的表格型結(jié)構(gòu),這是 pandas中許多高級數(shù)據(jù)處理功能的關(guān)鍵要素 )

創(chuàng)建 DataFrame 的辦法有很多,最常用的一種是直接傳入一個(gè)由等長列表或 NumPy 數(shù)組組成的字典,代碼示例:

data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada','Nevada'],'year': [2000, 2001, 2002, 2001, 2002, 2003],'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
frame = pd.DataFrame(data)
frame

結(jié)果 DataFrame 會自動加上索引(跟 Series 一樣),且全部列會被有序排列,輸出如下:

對于特別大的 DataFrame,head 方法會選取前五行:

frame.head()

如果指定了列序列,則 DataFrame 的列就會按照指定順序進(jìn)行排列,代碼示例:

pd.DataFrame(data,columns=['state','year','pop'])

如果傳入的列在數(shù)據(jù)中找不到,就會在結(jié)果中產(chǎn)生缺失值,代碼示例:

frame2 = pd.DataFrame(data,columns=['state','year','pop','debt'],index=['one','two','three','four','five','six'])
frame2

獲取 DataFrame 的 columns 和 index,代碼示例:

frame2.columns
frame2.index

輸出

Index([‘state’, ‘year’, ‘pop’, ‘debt’], dtype=’object’)
Index([‘one’, ‘two’, ‘three’, ‘four’, ‘five’, ‘six’], dtype=’object’)

通過類似字典標(biāo)記的方式或?qū)傩缘姆绞?#xff0c;可以將 DataFrame 的列獲取為一個(gè) Series,代碼示例:

frame2['state']
frame2.state

列可以通過賦值的方式進(jìn)行修改,賦值方式類似 Series。例如,我們可以給那個(gè)空的 “debt” 列賦上一個(gè)標(biāo)量值或一組值(數(shù)組或列表形式),代碼示例:

frame2.debt = np.arange(6.)
frame2

注意:將列表或數(shù)組賦值給某個(gè)列時(shí),其長度必須跟DataFrame的長度相匹配。

如果賦值的是一個(gè) Series,就會精確匹配 DataFrame 的索引,所有的空位都將被填上缺失值,代碼示例:

val = pd.Series([-1.2, -1.5, -1.7], index=['two', 'four','five'])
frame2.debt = val
frame2

為不存在的列賦值會創(chuàng)建出一個(gè)新列。關(guān)鍵字 del 用于刪除列。

作為 del 的例子,這里先添加一個(gè)新的布爾值的列,state 是否為 ‘Ohio’,代碼示例:

frame2['eastern'] = frame2.state=='Ohio'
frame2

DataFrame 另一種常見的數(shù)據(jù)形式是嵌套字典,如果嵌套字典傳給 DataFrame,pandas 就會被解釋為:外層字典的鍵作為列,內(nèi)層鍵則作為行索引,代碼示例:

#DataFrame另一種常見的數(shù)據(jù)形式是嵌套字典
pop = {'Nvidia':{2001:2.4,2002:3.4},'Intel':{2000:3.7,2001:4.7,2002:7.8}
}
frame3 = pd.DataFrame(pop,columns=['Nvidia','Intel'])
frame3

表5-1列出了DataFrame構(gòu)造函數(shù)所能接受的各種數(shù)據(jù)

索引對象

pandas 的索引對象負(fù)責(zé)管理軸標(biāo)簽和其他元數(shù)據(jù)(比如軸名稱等)。構(gòu)建 Series 或 DataFrame 時(shí),所用到的任何數(shù)組或其他序列的標(biāo)簽都會被轉(zhuǎn)換成一個(gè) Index,代碼示例:

import numpy as np
import pandas as pd
obj = pd.Series(np.arange(4),index=['a','b','c','d'])
index = obj.index
#index
index[:-1]

注意:Index 對象是不可變的,因此用戶不能對其進(jìn)行修改。

不可變可以使 Index 對象在多個(gè)數(shù)據(jù)結(jié)構(gòu)之間安全共享,代碼示例:

#pd.Index儲存所有pandas對象的軸標(biāo)簽
#不可變的ndarray實(shí)現(xiàn)有序的可切片集
labels = pd.Index(np.arange(3))
obj2 = pd.Series([1.5, -2.5, 0], index=labels)
obj2
#print(obj2.index is labels)
注意:雖然用戶不需要經(jīng)常使用 Index 的功能,但是因?yàn)橐恍┎僮鲿砂凰饕臄?shù)據(jù),理解它們的工作原理是很重要的。

與 python 的集合不同,pandas 的 Index 可以包含重復(fù)的標(biāo)簽,代碼示例:

dup_labels = pd.Index(['foo','foo','bar','alice'])
dup_labels

每個(gè)索引都有一些方法和屬性,它們可用于設(shè)置邏輯并回答有關(guān)該索引所包含的數(shù)據(jù)的常見問題。表5-2列出了這些函數(shù)。

pandas 選擇數(shù)據(jù)

import numpy as np
import pandas as pd
# dates = pd.date_range('20190325', periods=6)
dates = pd.date_range('20190325', periods=6)
df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=['A','B','C','D'])
print(df)
'''A   B   C   D
2019-03-25   0   1   2   3
2019-03-26   4   5   6   7
2019-03-27   8   9  10  11
2019-03-28  12  13  14  15
2019-03-29  16  17  18  19
2019-03-30  20  21  22  23
'''
# 檢索指定A列
print(df['A'])    # 等同于print(df.A)
'''
2019-03-25     0
2019-03-26     4
2019-03-27     8
2019-03-28    12
2019-03-29    16
2019-03-30    20
Freq: D, Name: A, dtype: int64
'''
## 切片選取多行或多列
print(df[0:3])    # 等同于print(df['2019-03-25':'2019-03-27'])
'''A  B   C   D
2019-03-25  0  1   2   3
2019-03-26  4  5   6   7
2019-03-27  8  9  10  11
'''
# 根據(jù)標(biāo)簽選擇數(shù)據(jù)
# 獲取特定行或列
# 指定行數(shù)據(jù)
print(df.loc['2019-03-25'])
bb = df.loc['2019-03-25']
print(type(bb))
'''
A    0
B    1
C    2
D    3
Name: 2019-03-25 00:00:00, dtype: int64
<class 'pandas.core.series.Series'>
'''
# 指定列, 兩種方式
print(df.loc[:, ['A', 'B']])    # print(df.loc[:, 'A':'B'])
'''A   B
2019-03-25   0   1
2019-03-26   4   5
2019-03-27   8   9
2019-03-28  12  13
2019-03-29  16  17
2019-03-30  20  21
'''
# 行列同時(shí)檢索
cc = df.loc['20190325', ['A', 'B']]
print(cc);print(type(cc.values))# numpy ndarray
'''
A    0
B    1
Name: 2019-03-25 00:00:00, dtype: int64
<class 'numpy.ndarray'>
'''
print(df.loc['20190326', 'A'])
'''
4
'''
# 根據(jù)序列iloc獲取特定位置的值, iloc是根據(jù)行數(shù)與列數(shù)來索引的
print(df.iloc[1,0])     # 13, numpy ndarray
'''
4
'''
print(df.iloc[3:5,1:3]) # 不包含末尾5或3,同列表切片
'''B   C
2019-03-28  13  14
2019-03-29  17  18
'''
# 跨行操作
print(df.iloc[[1, 3, 5], 1:3])
'''B   C
2019-03-26   5   6
2019-03-28  13  14
2019-03-30  21  22
'''
# 通過判斷的篩選
print(df[df.A>8])
'''A   B   C   D
2019-03-28  12  13  14  15
2019-03-29  16  17  18  19
2019-03-30  20  21  22  23
'''

總結(jié)

本文主要記錄了 Series 和 DataFrame 作為 pandas 庫的基本結(jié)構(gòu)的一些特性,如何創(chuàng)建 pandas 對象、指定 columns 和 index 創(chuàng)建 Series 和 DataFrame 對象、賦值操作、屬性獲取、索引對象等,這章介紹操作 Series 和 DataFrame 中的數(shù)據(jù)的基本手段。

參考資料

  • 《利用python進(jìn)行數(shù)據(jù)分析》

http://www.risenshineclean.com/news/43402.html

相關(guān)文章:

  • 溫州網(wǎng)站建設(shè)方案維護(hù)訊展網(wǎng)站優(yōu)化推廣
  • 制作網(wǎng)站建設(shè)策劃方案手機(jī)推廣app
  • 做網(wǎng)站每年都要費(fèi)用的嗎微商引流推廣
  • 網(wǎng)站建設(shè)環(huán)境分析百度推廣一般多少錢
  • 曲阜做網(wǎng)站最佳磁力搜索天堂
  • 2014做網(wǎng)站百度移動端點(diǎn)贊排名軟件
  • 外貿(mào)軟件定制域名查詢seo
  • 做網(wǎng)站排名的公司有哪些最好的營銷策劃公司
  • 聾啞工作設(shè)計(jì)做網(wǎng)站免費(fèi)長尾詞挖掘工具
  • 怎樣做代刷網(wǎng)站百度廣告投放平臺叫什么
  • 電子類網(wǎng)站模板昆明百度推廣開戶費(fèi)用
  • 廣州做網(wǎng)站多百度小說排行榜前十名
  • wordpress的列表汕頭seo公司
  • 西安定制網(wǎng)站建設(shè)中國知名網(wǎng)站排行榜
  • 四川疫情最新消息2019網(wǎng)站推廣優(yōu)化技巧
  • 如何做網(wǎng)站大管家如何優(yōu)化推廣網(wǎng)站
  • 陜西西安網(wǎng)站建設(shè)公司排名重慶seo排名技術(shù)
  • 無錫做網(wǎng)站哪里好成都全網(wǎng)營銷推廣
  • 織夢做電子商務(wù)網(wǎng)站小紅書seo排名帝搜軟件
  • 什么是網(wǎng)站建設(shè)和維護(hù)廈門seo小謝
  • 成功營銷案例免費(fèi)seo營銷優(yōu)化軟件下載
  • 做外貿(mào)網(wǎng)站要注意什么查企業(yè)信息查詢平臺
  • 騰訊云服務(wù)器用什么做網(wǎng)站企業(yè)培訓(xùn)課程視頻
  • 個(gè)人養(yǎng)老金查詢山東seo多少錢
  • 廣州網(wǎng)站制作公司優(yōu)化獨(dú)立站平臺選哪個(gè)好
  • 今天西安新消息抖音seo運(yùn)營模式
  • wordpress模板建站教程視頻微信騰訊會議
  • 網(wǎng)站建設(shè)中404什么意思宣傳產(chǎn)品的方式
  • b站必看的紀(jì)錄片廣告平臺
  • 動態(tài)商務(wù)網(wǎng)站開發(fā)與管理電商培訓(xùn)視頻教程