真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

DataFrame怎么在Pandas庫(kù)中使用-創(chuàng)新互聯(lián)

這篇文章給大家介紹DataFrame怎么在Pandas庫(kù)中使用,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

創(chuàng)新互聯(lián)是專業(yè)的鹽亭網(wǎng)站建設(shè)公司,鹽亭接單;提供網(wǎng)站制作、做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行鹽亭網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

1 簡(jiǎn)介

DataFrame是Python中Pandas庫(kù)中的一種數(shù)據(jù)結(jié)構(gòu),它類(lèi)似excel,是一種二維表。

或許說(shuō)它可能有點(diǎn)像matlab的矩陣,但是matlab的矩陣只能放數(shù)值型值(當(dāng)然matlab也可以用cell存放多類(lèi)型數(shù)據(jù)),DataFrame的單元格可以存放數(shù)值、字符串等,這和excel表很像。

同時(shí)DataFrame可以設(shè)置列名columns與行名index,可以通過(guò)像matlab一樣通過(guò)位置獲取數(shù)據(jù)也可以通過(guò)列名和行名定位,具體方法在后面細(xì)說(shuō)。

2 創(chuàng)建DataFrame

首先聲明一下,以下都是使用的Python 3.6.5版本為例,Python2應(yīng)該也差不多吧(大概

在所有操作之前當(dāng)然要先import必要的pandas庫(kù),因?yàn)閜andas常與numpy一起配合使用,所以也一起import吧。

import pandas as pd
import numpy as np

如果還沒(méi)安裝直接在cmd里pip安裝吧,如果有版本選擇問(wèn)題,參看之前的帖子。

pip install pandas
pip install numpy

2.1 直接創(chuàng)建

可以直接使用pandas的DataFrame函數(shù)創(chuàng)建,比如接下來(lái)我們隨機(jī)創(chuàng)建一個(gè)4*4的DataFrame。

df1=pd.DataFrame(np.random.randn(4,4),index=list('ABCD'),columns=list('ABCD'))

其中第一個(gè)參數(shù)是存放在DataFrame里的數(shù)據(jù),第二個(gè)參數(shù)index就是之前說(shuō)的行名(或者應(yīng)該叫索引?),第三個(gè)參數(shù)columns是之前說(shuō)的列名。

后兩個(gè)參數(shù)可以使用list輸入,但是注意,這個(gè)list的長(zhǎng)度要和DataFrame的大小匹配,不然會(huì)報(bào)錯(cuò)。當(dāng)然,這兩個(gè)參數(shù)是可選的,你可以選擇不設(shè)置。

而且發(fā)現(xiàn),這兩個(gè)list是可以一樣的,但是每行每列的名字在index或columns里要是唯一的。

使用python自己的shell展示創(chuàng)建的結(jié)果是這樣的:

DataFrame怎么在Pandas庫(kù)中使用

或者在jupyter里面更酷點(diǎn)的樣子,接下來(lái)都使用jupyter輸出展示吧。

DataFrame怎么在Pandas庫(kù)中使用

當(dāng)然,如果你的數(shù)據(jù)量賊小,也可以自己輸入創(chuàng)建,類(lèi)似這樣。

df2=pd.DataFrame([[1,2,3,4],[2,3,4,5],
         [3,4,5,6],[4,5,6,7]],
         index=list('ABCD'),columns=list('ABCD'))

這樣也可以得到這樣子的DataFrame:

DataFrame怎么在Pandas庫(kù)中使用

2.2 使用字典創(chuàng)建

仍然是使用DataFrame這個(gè)函數(shù),但是字典的每個(gè)key的value代表一列,而key是這一列的列名。比如這樣。

dic1={'name':['小明','小紅','狗蛋','鐵柱'],'age':[17,20,5,40],'gender':['男','女','女','男']}
df3=pd.DataFrame(dic1)

輸出結(jié)果是這樣的

DataFrame怎么在Pandas庫(kù)中使用

3 查看與篩選數(shù)據(jù)

python沒(méi)有matlab的工作區(qū)直接查看變量與內(nèi)容,這大概是python科學(xué)計(jì)算的一個(gè)缺點(diǎn)。所以需要格外的代碼來(lái)查看,最基本的直接寫(xiě)變量名與print就不說(shuō)了。

3.1 查看列的數(shù)據(jù)類(lèi)型

使用dtypes方法可以查看各列的數(shù)據(jù)類(lèi)型,比如說(shuō)剛剛的df3。

df3.dtypes

輸出的結(jié)果是這樣:

DataFrame怎么在Pandas庫(kù)中使用

3.2 查看DataFrame的頭尾

使用head可以查看前幾行的數(shù)據(jù),默認(rèn)的是前5行,不過(guò)也可以自己設(shè)置。

使用tail可以查看后幾行的數(shù)據(jù),默認(rèn)也是5行,參數(shù)可以自己設(shè)置。

比如隨意設(shè)置一個(gè)6*6的數(shù)據(jù),只看前5行。

df4=pd.DataFrame(np.random.randn(6,6))
df4.head()

DataFrame怎么在Pandas庫(kù)中使用

比如只看前3行。

df4.head(3)

DataFrame怎么在Pandas庫(kù)中使用

比如看后5行。

df4.tail()

DataFrame怎么在Pandas庫(kù)中使用

比如只看后2行。

df4.tail(2)

DataFrame怎么在Pandas庫(kù)中使用

3.3 查看行名與列名

使用index查看行名,columns查看列名。具體由例子感受吧。

查看行名。

df1.index

DataFrame怎么在Pandas庫(kù)中使用

查看列名。

df3.columns

DataFrame怎么在Pandas庫(kù)中使用

3.4 查看數(shù)據(jù)值

使用values可以查看DataFrame里的數(shù)據(jù)值,返回的是一個(gè)數(shù)組。

比如說(shuō)查看所有的數(shù)據(jù)值。

df3.values

DataFrame怎么在Pandas庫(kù)中使用

比如說(shuō)查看某一列所有的數(shù)據(jù)值。

df3['name'].values

DataFrame怎么在Pandas庫(kù)中使用

還有另一種操作,使用loc或者iloc查看數(shù)據(jù)值(但是好像只能根據(jù)行來(lái)查看?)。區(qū)別是loc是根據(jù)行名,iloc是根據(jù)數(shù)字索引(也就是行號(hào))。

比如說(shuō)這樣。

df1.loc['A']

DataFrame怎么在Pandas庫(kù)中使用

或者這樣。

df1.iloc[0]

DataFrame怎么在Pandas庫(kù)中使用

按列進(jìn)行索引查看數(shù)據(jù)還能直接使用列名,但這種方法對(duì)行索引不適用。

df3['name']

DataFrame怎么在Pandas庫(kù)中使用

3.5 查看行列數(shù)

使用shape查看行列數(shù),參數(shù)為0表示查看行數(shù),參數(shù)為1表示查看列數(shù)。

df3.shape[0]

DataFrame怎么在Pandas庫(kù)中使用

df3.shape[1]

DataFrame怎么在Pandas庫(kù)中使用

4 基本操作

DataFrame有些方法可以直接進(jìn)行數(shù)據(jù)統(tǒng)計(jì),矩陣計(jì)算之類(lèi)的基本操作。

4.1 轉(zhuǎn)置

直接字母T,線性代數(shù)上線。

比如說(shuō)把之前的df2轉(zhuǎn)置一下。

df3.T

DataFrame怎么在Pandas庫(kù)中使用

4.2 描述性統(tǒng)計(jì)

使用describe可以對(duì)數(shù)據(jù)根據(jù)列進(jìn)行描述性統(tǒng)計(jì)。

比如說(shuō)對(duì)df1進(jìn)行描述性統(tǒng)計(jì)。

df1.describe()

DataFrame怎么在Pandas庫(kù)中使用

如果有的列是非數(shù)值型的,那么就不會(huì)進(jìn)行統(tǒng)計(jì)。

如果想對(duì)行進(jìn)行描述性統(tǒng)計(jì),請(qǐng)參看4.1(轉(zhuǎn)置后進(jìn)行describe呀!)

4.3 計(jì)算

使用sum默認(rèn)對(duì)每列求和,sum(1)為對(duì)每行求和。比如

df3.sum()

DataFrame怎么在Pandas庫(kù)中使用

可以發(fā)現(xiàn)就算元素是字符串,使用sum也會(huì)加起來(lái)。

df3.sum(1)

DataFrame怎么在Pandas庫(kù)中使用

而一行中,有字符串有數(shù)值則只計(jì)算數(shù)值。

數(shù)乘運(yùn)算使用apply,比如。

df2.apply(lambda x:x*2)

DataFrame怎么在Pandas庫(kù)中使用

如果元素是字符串,則會(huì)把字符串再重復(fù)一遍。

乘方運(yùn)算跟matlab類(lèi)似,直接使用兩個(gè)*,比如。

df2**2

DataFrame怎么在Pandas庫(kù)中使用

乘方運(yùn)算如果有元素是字符串的話,就會(huì)報(bào)錯(cuò)。

4.4 新增

擴(kuò)充列可以直接像字典一樣,列名對(duì)應(yīng)一個(gè)list,但是注意list的長(zhǎng)度要跟index的長(zhǎng)度一致。

df2['E']=['999','999','999','999']df2

DataFrame怎么在Pandas庫(kù)中使用

還可以使用insert,使用這個(gè)方法可以指定把列插入到第幾列,其他的列順延。

df2['E']=['999','999','999','999']
df2

DataFrame怎么在Pandas庫(kù)中使用

4.5 合并

使用join可以將兩個(gè)DataFrame合并,但只根據(jù)行列名合并,并且以作用的那個(gè)DataFrame的為基準(zhǔn)。如下所示,新的df7是以df2的行號(hào)index為基準(zhǔn)的。

df6=pd.DataFrame(['my','name','is','a'],index=list('ACDH'),columns=list('G'))
df6
df7=df2.join(df6)
df7

DataFrame怎么在Pandas庫(kù)中使用

但是,join這個(gè)方法還有how這個(gè)參數(shù)可以設(shè)置,合并兩個(gè)DataFrame的交集或并集。參數(shù)為'inner'表示交集,'outer'表示并集。

df6=pd.DataFrame(['my','name','is','a'],index=list('ACDH'),columns=list('G'))
df6
df7=df2.join(df6)
df7

DataFrame怎么在Pandas庫(kù)中使用

如果要合并多個(gè)Dataframe,可以用list把幾個(gè)Dataframe裝起來(lái),然后使用concat轉(zhuǎn)化為一個(gè)新的Dataframe。

df6=pd.DataFrame(['my','name','is','a'],index=list('ACDH'),columns=list('G'))
df6
df7=df2.join(df6)
df7

DataFrame怎么在Pandas庫(kù)中使用

關(guān)于DataFrame怎么在Pandas庫(kù)中使用就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。


當(dāng)前題目:DataFrame怎么在Pandas庫(kù)中使用-創(chuàng)新互聯(lián)
鏈接分享:http://weahome.cn/article/cdpgpp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部