亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python?Pandas?中的數(shù)據(jù)結(jié)構(gòu)詳解

 更新時間:2022年06月21日 11:38:50   作者:云邊有把小AK  
這篇文章主要介紹了Python?Pandas?中的數(shù)據(jù)結(jié)構(gòu)詳解,Pandas有三種數(shù)據(jù)結(jié)構(gòu)Series、DataFrame和Panel,文章圍繞主題展開更多相關(guān)內(nèi)容需要的小伙伴可以參考一下

前言:

Pandas有三種數(shù)據(jù)結(jié)構(gòu):Series、DataFrame和Panel。Series類似于數(shù)組;DataFrame類似于表格;Panel可視為Excel的多表單Sheet

1.Series

Series是一種一維數(shù)組對象,包含一個值序列,并且包含數(shù)據(jù)標(biāo)簽,稱為索引(index),通過索引來訪問數(shù)組中的數(shù)據(jù)。

1.1通過列表創(chuàng)建Series

例1.通過列表創(chuàng)建

import pandas as pd
obj = pd.Series([1,-2,3,4])   #僅由一個數(shù)組構(gòu)成
print(obj)

輸出:

0 1
1 -2
2 3
3 4
dtype: int64

輸出的第一列為index,第二列為數(shù)據(jù)value。如果創(chuàng)建Series時沒有指定index,Pandas會采用整型數(shù)據(jù)作為該Series的index。也可以使用Python里的索引index和切片slice技術(shù)

例2.創(chuàng)建Series時指定索引

import pandas as pd
i = ["a","c","d","a"]
v = [2,4,5,7]
t = pd.Series(v,index=i,name="col")
print(t)

out:

a    2
c    4
d    5
a    7
Name: col, dtype: int64

盡管創(chuàng)建Series指定了index,實際上Pandas還是有隱藏的index位置信息。所以Series有兩套描述某條數(shù)據(jù)手段:位置和標(biāo)簽 

例3.Series位置和標(biāo)簽的使用

import pandas as pd
val = [2,4,5,6]
idx1 = range(10,14)
idx2 = "hello the cruel world".split()
s0 = pd.Series(val)
s1 = pd.Series(val,index=idx1)
t = pd.Series(val,index=idx2)
print(s0.index)
print(s1.index)
print(t.index)
print(s0[0])
print(s1[10])
print('default:',t[0],'label:',t["hello"])

1.2通過字典創(chuàng)建Series

如果數(shù)據(jù)被存放在一個Python字典中,也可以直接通過這個字典來創(chuàng)建Series

  例4.通過字典創(chuàng)建Series

import pandas as pd
sdata = {'Ohio':35000,'Texass':71000,'Oregon':16000,'Utah':5000}
obj = pd.Series(sdata)
print(obj)

Ohio      35000
Texass    71000
Oregon    16000
Utah       5000
dtype: int64

如果只傳入一個字典,則結(jié)果Series中的索引就是原字典的鍵(有序排列)

例5.通過字典創(chuàng)建Series時的索引

import pandas as pd
sdata = {"a":100,"b":200,"e":300}
obj = pd.Series(sdata)
print(obj)

a    100
b    200
e    300
dtype: int64

如果字典中的鍵值和指定的索引不匹配,則對應(yīng)的值時NaN

  例6.鍵值和指定索引不匹配

import pandas as pd
sdata = {"a":100,"b":200,"e":300}
letter = ["a","b","c","e"]
obj = pd.Series(sdata,index=letter)
print(obj)

a    100.0
b    200.0
c      NaN
e    300.0
dtype: float64

對于許多應(yīng)用而言,Series重要的一個功能是:它在算術(shù)運算中會自動對齊不同索引的數(shù)據(jù)

例7.不同索引數(shù)據(jù)的自動對齊

import pandas as pd
sdata = {'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000}
obj1 = pd.Series(sdata)
states = ['California','Ohio','Oregon','Texas']
obj2 = pd.Series(sdata,index=states)
print(obj1+obj2)

California         NaN
Ohio           70000.0
Oregon         32000.0
Texas         142000.0
Utah               NaN
dtype: float64 

Series的索引可以通過賦值的方式就地修改

  例8.Series索引的修改

import pandas as pd
obj = pd.Series([4,7,-3,2])
obj.index = ['Bob','Steve','Jeff','Ryan']
print(obj)

Bob      4
Steve    7
Jeff    -3
Ryan     2
dtype: int64

2.DataFrame

 DataFrame是一個表格型的數(shù)據(jù)結(jié)構(gòu),它含有一組有序的列,每列可以是不同類型的值(數(shù)值、字符串、布爾值等)。DataFrame既有行索引也有列索引,它可以被看作由Series組成的字典(共用同一個索引)。跟其他類型的數(shù)據(jù)結(jié)構(gòu)相比,DataFrame中面向行和面向列的操作上基本上是平衡的

 構(gòu)建DataFrame的方式有很多,最常用的是直接傳入一個由等長列表或NumPy數(shù)組組成的字典來形成DataFrame

  例9.DataFrame的創(chuàng)建

import pandas as pd
data = {
    'name':['張三','李四','王五','小明'],
    'sex':['female','female','male','male'],
    'year':[2001,2001,2003,2002],
    'city':['北京','上海','廣州','北京']
}
df = pd.DataFrame(data)
print(df)

name     sex  year city
0   張三  female  2001   北京
1   李四  female  2001   上海
2   王五    male  2003   廣州
3   小明    male  2002   北京

DataFrame會自動加上索引(跟Series一樣),且全部列會被有序排列。如果指定了列名序列,則DataFrame的列就會按照指定順序進行排列

例10.DataFrame的索引

import pandas as pd
data = {
    'name':['張三','李四','王五','小明'],
    'sex':['female','female','male','male'],
    'year':[2001,2001,2003,2002],
    'city':['北京','上海','廣州','北京']
}
df = pd.DataFrame(data,columns = ['name','year','sex','city'])
print(df)

name  year     sex city
0   張三  2001  female   北京
1   李四  2001  female   上海
2   王五  2003    male   廣州
3   小明  2002    male   北京

跟Series一樣,如果傳入的列在數(shù)據(jù)中找不到,就會產(chǎn)生NaN值。

例11.DataFrame創(chuàng)建時的空缺值

import pandas as pd
data = {
    'name':['張三','李四','王五','小明'],
    'sex':['female','female','male','male'],
    'year':[2001,2001,2003,2002],
    'city':['北京','上海','廣州','北京']
}
df = pd.DataFrame(data,columns = ['name','year','sex','city','address'])
print(df)

name  year     sex city address
0   張三  2001  female   北京     NaN
1   李四  2001  female   上海     NaN
2   王五  2003    male   廣州     NaN
3   小明  2002    male   北京     NaN

DataFrame構(gòu)造函數(shù)的columns函數(shù)給出列的名字,index給出label標(biāo)簽

例12.DataFrame構(gòu)建時指定列名

import pandas as pd
data = {
    'name':['張三','李四','王五','小明'],
    'sex':['female','female','male','male'],
    'year':[2001,2001,2003,2002],
    'city':['北京','上海','廣州','北京']
}
df = pd.DataFrame(data,columns = ['name','year','sex','city','address'],index = ['a','b','c','d'])
print(df)

 name  year     sex city address
a   張三  2001  female   北京     NaN
b   李四  2001  female   上海     NaN
c   王五  2003    male   廣州     NaN
d   小明  2002    male   北京     NaN

3.索引對象 

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

  例13.顯示DataFrame的索引和列

import pandas as pd
data = {
    'name':['張三','李四','王五','小明'],
    'sex':['female','female','male','male'],
    'year':[2001,2001,2003,2002],
    'city':['北京','上海','廣州','北京']
}
df = pd.DataFrame(data,columns = ['name','year','sex','city','address'],index = ['a','b','c','d'])
print(df)
print(df.index)
print(df.columns)

name  year     sex city address
a   張三  2001  female   北京     NaN
b   李四  2001  female   上海     NaN
c   王五  2003    male   廣州     NaN
d   小明  2002    male   北京     NaN
Index(['a', 'b', 'c', 'd'], dtype='object')
Index(['name', 'year', 'sex', 'city', 'address'], dtype='object')

索引對象不能進行修改,否則會報錯。不可修改性非常重要,因為這樣才能使Index對象在多個數(shù)據(jù)結(jié)構(gòu)之間安全共享
除了長的像數(shù)組,Index的功能也類似于一個固定大小的集合

例14.DataFrame的Index

import pandas as pd
data = {
    'name':['張三','李四','王五','小明'],
    'sex':['female','female','male','male'],
    'year':[2001,2001,2003,2002],
    'city':['北京','上海','廣州','北京']
}
df = pd.DataFrame(data,columns = ['name','year','sex','city','address'],index = ['a','b','c','d'])
 
print('name'in df.columns)
print('a'in df.index)

True

True

每個索引都有一些方法和屬性,他們可用于設(shè)置邏輯并回答有關(guān)該索引所包含的數(shù)據(jù)的常見的問題。

  例15.插入索引值

import pandas as pd
data = {
    'name':['張三','李四','王五','小明'],
    'sex':['female','female','male','male'],
    'year':[2001,2001,2003,2002],
    'city':['北京','上海','廣州','北京']
}
df = pd.DataFrame(data,columns = ['name','year','sex','city','address'],index = ['a','b','c','d'])
 
df.index.insert(1,'w')
Index(['a', 'w', 'b', 'c', 'd'], dtype='object')

4.查看DataFrame的常用屬性

DataFrame的基礎(chǔ)屬性有value、index、columns、dtypes、ndim和shape,分別可以獲取DataFrame的元素、索引、列名、類型、維度和形狀。

  例16.顯示DataFrame的屬性

import pandas as pd
data = {
    'name':['張三','李四','王五','小明'],
    'sex':['female','female','male','male'],
    'year':[2001,2001,2003,2002],
    'city':['北京','上海','廣州','北京']
}
df = pd.DataFrame(data,columns = ['name','year','sex','city','address'],index = ['a','b','c','d'])
 
print(df)
print('信息表的所有值為:\n',df.values)
print('信息表的所有列為:\n',df.columns)
print('信息表的元素個數(shù):\n',df.size)
print('信息表的維度:\n',df.ndim)
print('信息表的形狀:\n',df.shape)
 #//輸出
  name  year     sex city address
a   張三  2001  female   北京     NaN
b   李四  2001  female   上海     NaN
c   王五  2003    male   廣州     NaN
d   小明  2002    male   北京     NaN
信息表的所有值為:
 [['張三' 2001 'female' '北京' nan]
 ['李四' 2001 'female' '上海' nan]
 ['王五' 2003 'male' '廣州' nan]
 ['小明' 2002 'male' '北京' nan]]
信息表的所有列為:
 Index(['name', 'year', 'sex', 'city', 'address'], dtype='object')
信息表的元素個數(shù):
 20
信息表的維度:
 2
信息表的形狀:
 (4, 5)

到此這篇關(guān)于Python Pandas 中的數(shù)據(jù)結(jié)構(gòu)詳解的文章就介紹到這了,更多相關(guān)Python Pandas 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python壓包的概念及實例詳解

    python壓包的概念及實例詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于python壓包的概念及實例詳解內(nèi)容,有興趣的朋友們可以參考學(xué)習(xí)下。
    2021-02-02
  • python調(diào)用chrome實現(xiàn)網(wǎng)頁自動操作過程

    python調(diào)用chrome實現(xiàn)網(wǎng)頁自動操作過程

    這篇文章主要介紹了python調(diào)用chrome實現(xiàn)網(wǎng)頁自動操作,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-11-11
  • Pyqt5 實現(xiàn)跳轉(zhuǎn)界面并關(guān)閉當(dāng)前界面的方法

    Pyqt5 實現(xiàn)跳轉(zhuǎn)界面并關(guān)閉當(dāng)前界面的方法

    今天小編就為大家分享一篇Pyqt5 實現(xiàn)跳轉(zhuǎn)界面并關(guān)閉當(dāng)前界面的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python的多元數(shù)據(jù)類型(上)

    python的多元數(shù)據(jù)類型(上)

    這篇文章主要為大家詳細(xì)介紹了python的多元數(shù)據(jù)類型,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • pycharm如何使用anaconda中的各種包(操作步驟)

    pycharm如何使用anaconda中的各種包(操作步驟)

    這篇文章主要介紹了pycharm如何使用anaconda中的各種包,本文通過操作步驟給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 基于Python+Matplotlib實現(xiàn)直方圖的繪制

    基于Python+Matplotlib實現(xiàn)直方圖的繪制

    Matplotlib是Python的繪圖庫,它能讓使用者很輕松地將數(shù)據(jù)圖形化,并且提供多樣化的輸出格式。本文將為大家介紹如何用matplotlib繪制直方圖,感興趣的朋友可以學(xué)習(xí)一下
    2022-04-04
  • python 讀取攝像頭數(shù)據(jù)并保存的實例

    python 讀取攝像頭數(shù)據(jù)并保存的實例

    今天小編就為大家分享一篇python 讀取攝像頭數(shù)據(jù)并保存的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Python使用pyodbc訪問數(shù)據(jù)庫操作方法詳解

    Python使用pyodbc訪問數(shù)據(jù)庫操作方法詳解

    這篇文章主要介紹了Python使用pyodbc訪問數(shù)據(jù)庫操作方法,結(jié)合實例形式詳細(xì)分析了Python基于pyodbc針對數(shù)據(jù)庫的連接、查詢、插入、修改、刪除等操作技巧與注意事項,需要的朋友可以參考下
    2018-07-07
  • Python爬蟲抓取代理IP并檢驗可用性的實例

    Python爬蟲抓取代理IP并檢驗可用性的實例

    今天小編就為大家分享一篇Python爬蟲抓取代理IP并檢驗可用性的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python使用tkinter實現(xiàn)自定義多參數(shù)對話框

    python使用tkinter實現(xiàn)自定義多參數(shù)對話框

    Tkinter模塊是Python標(biāo)準(zhǔn)庫中的一部分,用于創(chuàng)建圖形用戶界面(GUI)應(yīng)用程序,它提供了一組工具和組件,用于創(chuàng)建窗口、按鈕、文本框等用戶界面元素,并且可以響應(yīng)用戶的輸入,本文將給大家講講python如何使用tkinter實現(xiàn)自定義多參數(shù)對話框
    2023-08-08

最新評論