溫馨提示×

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

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

Pandas的Series和DataFrame怎么創(chuàng)建

發(fā)布時(shí)間:2022-11-03 17:40:54 來(lái)源:億速云 閱讀:150 作者:iii 欄目:編程語(yǔ)言

本篇內(nèi)容介紹了“Pandas的Series和DataFrame怎么創(chuàng)建”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

一、Pandas 簡(jiǎn)介

Pandas是使用Python語(yǔ)言開發(fā)的用于數(shù)據(jù)處理和數(shù)據(jù)分析的第三方庫(kù)。它擅長(zhǎng)處理數(shù)字型數(shù)據(jù)和時(shí)間序列數(shù)據(jù),當(dāng)然文本型的數(shù)據(jù)也能輕松處理。 Pandas 可以處理的數(shù)據(jù)格式非常多,常見的數(shù)據(jù)文件格式都可以快速導(dǎo)入,比如 CSV、JSON、SQL、Microsoft Excel 導(dǎo)入數(shù)據(jù)。

二、Pandas 數(shù)據(jù)結(jié)構(gòu)

Pandas 的主要數(shù)據(jù)結(jié)構(gòu)有兩種,分別是: Series (一維數(shù)據(jù))與 DataFrame(二維數(shù)據(jù));所以后面的內(nèi)容也是圍繞著這兩部門展開的;

2.1 Series (一維數(shù)據(jù))

似于一維數(shù)組的對(duì)象,它由一組數(shù)據(jù)(各種Numpy數(shù)據(jù)類型)以及一組與之相關(guān)的數(shù)據(jù)標(biāo)簽(即索引)組成。即:Series 與Numpy 數(shù)組基本是一樣的,只不過(guò)多了數(shù)據(jù)標(biāo)簽(索引);

Series 格式: pandas.Series( data, index, dtype, name, copy)

參數(shù)說(shuō)明:

參數(shù)解釋說(shuō)明
data一組數(shù)據(jù)(ndarray 類型) ,即Numpy數(shù)據(jù);
index數(shù)據(jù)索引標(biāo)簽,如果不指定,默認(rèn)從 0 開始。
dtype數(shù)據(jù)類型,默認(rèn)會(huì)自己判斷。
name設(shè)置名稱。(不常用)
copy拷貝數(shù)據(jù),默認(rèn)為 False。(不常用)

Series 舉例:

import pandas as pd

a = ['x','y','z']
b = [1,2,3]
mynum1 = pd.Series(b)
print(mynum1)
# 0    1
# 1    2
# 2    3

mynum2 = pd.Series(b,index=a)
print(mynum2)
# x    1
# y    2
# z    3
# dtype: int64

mynum3 = pd.Series(b,index=a,dtype=float)
print(mynum3)
# x    1.0
# y    2.0
# z    3.0
# dtype: float64

注意事項(xiàng):

  1. 一般情況下,當(dāng)我們導(dǎo)入pandas的時(shí)候,都會(huì)將Pandas重命名為pd(因?yàn)榇蠹叶歼@么做;)

  2. 當(dāng)不指定index時(shí),會(huì)默認(rèn)index是一個(gè)從0開始的整數(shù)數(shù)組,即:0,1,2....;例如:上例中的mynum1;

  3. 當(dāng)不指定dtype時(shí),pandas會(huì)自己判斷一個(gè)最合適的數(shù)據(jù)類型;例如:上例中的mynum2;

  4. 也可以自己指定index與dtype, 這樣pandas會(huì)按照我們指定的數(shù)據(jù)生成;例如:上例中的mynum3;

2.2 DataFrame(二維數(shù)據(jù))

類似于二維數(shù)組的對(duì)象,是一個(gè)表格型的數(shù)據(jù)結(jié)構(gòu),它含有一組有序的列,每列可以是不同的值類型(數(shù)值、字符串、布爾型值)。DataFrame 既有行索引也有列索引;可以當(dāng)作是許多個(gè)共用同一個(gè)索引的Series組成的數(shù)據(jù)結(jié)構(gòu);DataFrame 圖解如下:

Pandas的Series和DataFrame怎么創(chuàng)建

上圖所表示的就是一個(gè)由n 個(gè)Series組成的DataFrame; 所有的Series 共享同一個(gè)Index ;

DataFrame 格式:pandas.DataFrame( data, index, columns, dtype, copy)

參數(shù)說(shuō)明:

參數(shù)解釋說(shuō)明
data一組數(shù)據(jù)(ndarray 類型) ,即Numpy數(shù)據(jù);
index數(shù)據(jù)索引標(biāo)簽,也可稱為行標(biāo)簽
columns數(shù)據(jù)列標(biāo)簽,如果不指定,默認(rèn)從 0 開始。也可稱為列標(biāo)簽。
dtype數(shù)據(jù)類型,默認(rèn)會(huì)自己判斷。
copy拷貝數(shù)據(jù),默認(rèn)為 False。(不常用)

三、Series 的創(chuàng)建

3.1 由數(shù)創(chuàng)建

不指定Index的時(shí)候,用單個(gè)數(shù)值只能創(chuàng)建一個(gè)元素的Series;

mySer = pd.Series(2)
print(mySer)  
# 0    2
# dtype: int64

通過(guò)指定Index 可以生成多個(gè)相同元素的Series,舉例如下:

mySer = pd.Series(2,index=range(3))
print(mySer)
# 0    2
# 1    2
# 2    2
# dtype: int64

3.2 由列表創(chuàng)建

當(dāng)不指定Index的時(shí)候,會(huì)默認(rèn)生成RangeIndex(start=0, stop=n-1, step=1)的Index; 舉例如下:

lis = [3,4,5]
mySer = pd.Series(lis)
print(mySer)
# 0    3
# 1    4
# 2    5
# dtype: int64
print(mySer.index)
# RangeIndex(start=0, stop=3, step=1)
print(mySer.values)
# [3 4 5]

也可以指定Index, 舉例如下:

lis = [3,4,5]
ind = ["馬里奧","路易吉","林克"]
mySer = pd.Series(lis,index=ind)
print(mySer)
# 馬里奧    3
# 路易吉    4
# 林克     5
# dtype: int64
print(mySer.index)
# Index(['馬里奧', '路易吉', '林克'], dtype='object')
print(mySer.values)
# [3 4 5]

3.3 由字典創(chuàng)建

dic = {'馬里奧':3,'路易吉':4,'林克':5}
mySer = pd.Series(dic)
print(mySer)   
# 馬里奧    3
# 路易吉    4
# 林克     5
# dtype: int64
print(mySer.index)  
# Index(['馬里奧', '路易吉', '林克'], dtype='object')
print(mySer.values)
# [3 4 5]

3.4 由Numpy數(shù)組創(chuàng)建

array = np.array([0, 1, 2, 3])
mySer = pd.Series(array)
print(mySer)   
# 0    0
# 1    1
# 2    2
# 3    3
# dtype: int32
print(mySer.index)
# RangeIndex(start=0, stop=4, step=1)
print(mySer.values)
# [0 1 2 3]

四、DataFreme 的創(chuàng)建

由字典創(chuàng)建

dict1 = {'馬里奧':[2,3,4],'路易吉':[5,6,7],'林克':[8,9,0]}
df = pd.DataFrame(dict1,index=["英雄%s"%i for i in range(1,4)])
print(df)
#      馬里奧  路易吉  林克
# 英雄1    2     5     8      
# 英雄2    3     6     9      
# 英雄3    4     7     0

由Series創(chuàng)建

ser1 = pd.Series(np.arange(0,5,1))   
ser2 = pd.Series(np.arange(5,10,1))  
df = pd.DataFrame({'A':ser1,'B':ser2})
print(df)
#    A  B
# 0  0  5
# 1  1  6
# 2  2  7
# 3  3  8
# 4  4  9

由二維數(shù)組創(chuàng)建

arr = np.arange(9).reshape(3,3)
df = pd.DataFrame(arr,columns=['A','B','C'],index=['IN1','IN2','IN3'])
print(df)
#      A  B  C
# IN1  0  1  2
# IN2  3  4  5
# IN3  6  7  8

由列表創(chuàng)建

lis1=[1,2,3]
lis2=[2,3,4]
df = pd.DataFrame({'A':lis1,'B':lis2},index=['IN1','IN2','IN3'])
print(df)
#      A  B
# IN1  1  2
# IN2  2  3
# IN3  3  4

“Pandas的Series和DataFrame怎么創(chuàng)建”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

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

AI