第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

首頁(yè) 慕課教程 Pandas 入門(mén)教程 Pandas 入門(mén)教程 Pandas 數(shù)據(jù)結(jié)構(gòu) DataFrame

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

1. 前言

上一節(jié)我們講述了 Pandas 兩種數(shù)據(jù)結(jié)構(gòu)之一 Series,并介紹了該數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)、常用屬性及方法。Series 數(shù)據(jù)結(jié)構(gòu)能有效的描述我們實(shí)際應(yīng)用中的一維數(shù)據(jù),然而,我們實(shí)際生活中接觸較多的是有行和列的二維數(shù)據(jù),那 Pandas 庫(kù)中的二維數(shù)據(jù)結(jié)構(gòu)又是怎樣表示的呢?

Pandas 庫(kù)中的 DataFrame 是一個(gè)二維數(shù)據(jù)結(jié)構(gòu),可以想象成我們常用的 Excel,它是Pandas 應(yīng)用中最常用的數(shù)據(jù)結(jié)構(gòu)。

2. DataFrame 數(shù)據(jù)結(jié)構(gòu)概述

DataFrame 是一種表格型的數(shù)據(jù)結(jié)構(gòu),含有一組有序的列,每列可以存放任意類型的數(shù)據(jù),可以看做是由Series組成的字典(公用同一個(gè)索引),它有行索引和列索引,行索引在左側(cè),列索引在上方,并可以通過(guò)操作指定行索引和列索引的值。

圖片描述

3. DataFrame 數(shù)據(jù)結(jié)構(gòu)常用的屬性

3.1 DataFrame 常用的屬性

常用屬性 屬性描述
values 返回 ndarray 類型的對(duì)象
index 獲取 DataFrame 行索引對(duì)象(可以通過(guò) index.values 獲取行索引值)
columns 獲取 DataFrame 列索引對(duì)象(可以通過(guò) index.values 獲取列索引值)
axes 獲取行及列索引
ndim 獲取 Series 的數(shù)據(jù)維度( Series 是一維數(shù)組)
shape 獲取 DataFrame 數(shù)據(jù)結(jié)構(gòu)
size 獲取 Series 的數(shù)據(jù)類型

DataFrame 數(shù)據(jù)結(jié)構(gòu)的屬性和 Series 的部分屬性內(nèi)容是相同的,但因?yàn)槭嵌S數(shù)據(jù)結(jié)構(gòu),也有自己獨(dú)特的一些屬性,下面我們通過(guò)代碼逐一介紹。

實(shí)例:我們通過(guò)定義一個(gè) DataFrame 數(shù)據(jù)結(jié)構(gòu),然后分別演示上面的屬性操作。

# 引入pandas
import pandas as pd
# 定義一個(gè)dataframe數(shù)據(jù)結(jié)構(gòu)的對(duì)象
data={'bookname':['python入門(mén)','python編程','python實(shí)戰(zhàn)'],
          'author':['Eric','張健','劉輝'],
          'price':['49.9','36.5','67.4']}
frame_obj=pd.DataFrame(data)
print(frame_obj)

# --- 輸出結(jié)果 ---
   bookname author price
0  python入門(mén)   Eric  49.9
1  python編程     張健  36.5
2  python實(shí)戰(zhàn)     劉輝  67.4

具體的屬性操作:

# values 屬性
print(frame_obj.values)
#--- 輸出結(jié)果 ---
[['python入門(mén)' 'Eric' '49.9']
 ['python編程' '張健' '36.5']
 ['python實(shí)戰(zhàn)' '劉輝' '67.4']]    # 一個(gè)ndarray類型的對(duì)象

# index 屬性
print(frame_obj.index.values)
#--- 輸出結(jié)果 ---
[0 1 2]  # 這是一個(gè)一維數(shù)組 是dataframe數(shù)據(jù)對(duì)象的行索引值

# columns 屬性
print(frame_obj.columns.values)
#--- 輸出結(jié)果 ---
['bookname' 'author' 'price'] # 這是一個(gè)一維數(shù)組 是dataframe數(shù)據(jù)對(duì)象的列索引值

# axes 屬性
print(frame_obj.axes)
#--- 輸出結(jié)果 ---
[RangeIndex(start=0, stop=3, step=1), Index(['bookname', 'author', 'price'], dtype='object')]   # 對(duì)應(yīng)的行索引和列索引

# ndim 屬性
print(frame_obj.ndim)
#--- 輸出結(jié)果 ---
2  # 2正式dataframe的數(shù)據(jù)維度

# shape 屬性
print(frame_obj.shape)
#--- 輸出結(jié)果 ---
(3, 3)  # 該dataframe數(shù)據(jù)結(jié)構(gòu)是3行3列的

# size 屬性
print(frame_obj.size)
#--- 輸出結(jié)果 ---
9 # 數(shù)據(jù)的個(gè)數(shù),二維3乘以3是9個(gè)數(shù)據(jù)

3.2 DataFrame 常用的操作方法

接下來(lái)我們一起看下dataframe的常用方法,見(jiàn)證這個(gè)二維數(shù)據(jù)的厲害吧。

常用函數(shù) 函數(shù)描述
DataFrame() 創(chuàng)建一個(gè)DataFrame數(shù)據(jù)結(jié)構(gòu)的對(duì)象
head() 用于查看數(shù)據(jù)集的前n行
info() 快速查看數(shù)據(jù)的描述
tail() 用于查看數(shù)據(jù)集的后n行
T 轉(zhuǎn)置函數(shù)
sum() 求和函數(shù)

下面我們分別看一下每個(gè)方法的具體操作實(shí)例:

DataFrame() 方法

該方法用于創(chuàng)建 DataFrame 對(duì)象,我們可以指定行索引和列索引創(chuàng)建,還可以通過(guò)字典進(jìn)行創(chuàng)建。下面代碼中分部創(chuàng)建一個(gè)4*4的 DataFrame。

# 1.通過(guò)傳入數(shù)據(jù),行索引,列索引進(jìn)行創(chuàng)建
df1=pd.DataFrame([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]],
                 index=list('ABCD'),columns=list('ABCD'))
print(df1)
# --- 輸出結(jié)果 ---
    A   B   C   D
A   1   2   3   4
B   5   6   7   8
C   9  10  11  12
D  13  14  15  16
# 第一個(gè)參數(shù)是存放在DataFrame里的數(shù)據(jù),第二個(gè)index是行名索引,第三個(gè)columns是列索引,注意:這里index,columns的list長(zhǎng)度要和對(duì)應(yīng)的行和列索引數(shù)量一致,不然會(huì)報(bào)錯(cuò)。

# 1.通過(guò)字典進(jìn)行創(chuàng)建
data={'A':['1','2','3','4'],
          'B':['5','6','7','8'],
          'C':['9','10','10','11'],
          'D':['12','13','14','15']}
df2=pd.DataFrame(data)
print(df2)
# --- 輸出結(jié)果 ---
   A  B   C   D
0  1  5   9  12
1  2  6  10  13
2  3  7  10  14
3  4  8  11  15

head() 方法

該方法通過(guò)傳入的值,查找數(shù)據(jù)的的前n行

# 2.head(2) 取前兩行數(shù)據(jù)
data={'A':['1','2','3','4'],
          'B':['5','6','7','8'],
          'C':['9','10','10','11'],
          'D':['12','13','14','15']}
df2=pd.DataFrame(data)
print(df2.head(2))

# --- 輸出結(jié)果 ---
   A  B   C   D
0  1  5   9  12
1  2  6  10  13
# 這里我們輸出了前兩行的數(shù)據(jù)

info() 方法

通過(guò)該方法,可以看到數(shù)據(jù)的描述信息摘要,在對(duì)數(shù)據(jù)進(jìn)行探索性分析時(shí)比較有用,比如行和列數(shù),每個(gè)值的類型,以及非空值的數(shù)量。

# 3.info() 取前兩行數(shù)據(jù)
data={'A':['1','2','3','4'],
          'B':['5','6','7','8'],
          'C':['9','10','10','11'],
          'D':['12','13','14','15']}
df2=pd.DataFrame(data)
print(df2.info())

# --- 輸出結(jié)果 ---
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 4 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   A       4 non-null      object
 1   B       4 non-null      object
 2   C       4 non-null      object
 3   D       4 non-null      object
dtypes: object(4)
memory usage: 256.0+ bytes
None

tail() 方法

通過(guò)傳入的值,返回 DataFrame 對(duì)象的后幾行數(shù)據(jù)

# 4.tail(2) 取后兩行數(shù)據(jù)
data={'A':['1','2','3','4'],
          'B':['5','6','7','8'],
          'C':['9','10','10','11'],
          'D':['12','13','14','15']}
df2=pd.DataFrame(data)
print(df2.tail(2))

# --- 輸出結(jié)果 ---
   A  B   C   D
2  3  7  10  14
3  4  8  11  15
# 這里輸出的是后兩行數(shù)據(jù)

T 方法

直接字母 T,可以將 DataFrame 的行和列進(jìn)行置換。

# 5.T 進(jìn)行置換行和列
data={'A':['1','2','3','4'],
          'B':['5','6','7','8'],
          'C':['9','10','10','11'],
          'D':['12','13','14','15']}
df2=pd.DataFrame(data)
print(df2)
# --- 輸出結(jié)果 ---
 A  B   C   D
0  1  5   9  12
1  2  6  10  13
2  3  7  10  14
3  4  8  11  15   # 原dataframe

print(df2.T)
# --- 輸出結(jié)果 ---
 0   1   2   3
A   1   2   3   4
B   5   6   7   8
C   9  10  10  11
D  12  13  14  15  #  進(jìn)行置換后,行和列位置變換

sum() 方法

sum() 是求和方法,默認(rèn)是對(duì)每列求和,傳入 1 也就是 sum(1) ,是對(duì)每行進(jìn)行求和。

# 1.sum()對(duì)每列求和,sum(1)對(duì)每行進(jìn)行求和
data={'A':[1,2,3,4],
          'B':[5,6,7,8],
          'C':[9,10,11,12],
          'D':[13,14,15,16]}
df2=pd.DataFrame(data)
print(df2)
# --- 輸出結(jié)果 ---
   A  B   C   D
0  1  5   9  13
1  2  6  10  14
2  3  7  11  15
3  4  8  12  16  # 原dataframe數(shù)據(jù)

print(df2.sum())
# --- 輸出結(jié)果 ---
A    10
B    26
C    42
D    58 
dtype: int64   # 對(duì)每列進(jìn)行求和

print(df2.sum(1))
# --- 輸出結(jié)果 ---
0    28
1    32
2    36
3    40
dtype: int64  # 對(duì)每行進(jìn)行求和

4. 小結(jié)

該小節(jié)內(nèi)容講述了 Pandas 庫(kù)中的第二個(gè)重要數(shù)據(jù)結(jié)構(gòu) DataFrame ,它作為二維數(shù)據(jù)結(jié)構(gòu),擁有 Series 之外的獨(dú)特屬性和方法內(nèi)容。本節(jié)課程的重點(diǎn)如下:

  • DataFrame 數(shù)據(jù)結(jié)構(gòu)的常用屬性;
  • DataFrame 數(shù)據(jù)結(jié)構(gòu)的常用操作方法;

圖片描述

Tips:想要學(xué)習(xí)更多Pandas相關(guān)知識(shí),可以點(diǎn)擊
Pandas Pandas讀取數(shù)據(jù)文件
Pandas 數(shù)據(jù)結(jié)構(gòu)Series
Pandas 讀取MySql數(shù)據(jù)