Pandas的庫的資料型別操作

2021-10-03 07:23:18 字數 4190 閱讀 2236

本文的主要內容是基於中國大學mooc(慕課)中的「python資料分析與視覺化」課程進行整理和總結。

改變series和dataframe物件。

d.reindex(index=['c5','c4','c3','c2','c1'])
城市	環比	同比	定基

c5 瀋陽 100.5 120.1 122.3

c4 深圳 100.9 119.5 1210.0

c3 廣州 101.3 120.1 122.4

c2 上海 101.2 120.6 122.5

c1 北京 101.5 120.7 121.4

d.reindex(columns=['定基','同比','環比','城市'])
定基	同比	環比	城市

c1 121.4 120.7 101.5 北京

c2 122.5 120.6 101.2 上海

c3 122.4 120.1 101.3 廣州

c4 1210.0 119.5 100.9 深圳

c5 122.3 120.1 100.5 瀋陽

可以看到,通過使用reindex可以改變橫向索引和橫向colums的順序關係。

.reindex(index=none,columns=none,…)的引數

引數說明

index,columns

新的行列自定義索引

fill_value

重新索引中,用於填充缺失位置的值

method

填充方法,ffill當前值向前填充,bfill向後填充

limit

最大填充量

copy

預設true,生成新的物件,false時,新舊相等不複製

d = 

d = pd.dataframe(d,index=['c1','c2','c3','c4','c5'])

d

城市	環比	同比	定基

c1 北京 101.5 120.7 121.4

c2 上海 101.2 120.6 122.5

c3 廣州 101.3 120.1 122.4

c4 深圳 100.9 119.5 1210.0

c5 瀋陽 100.5 120.1 122.3

newc = d.columns.insert(4,'新增')

newd = d.reindex(columns=newc,fill_value=200)

newd

城市	環比	同比	定基	新增

c1 北京 101.5 120.7 121.4 200

c2 上海 101.2 120.6 122.5 200

c3 廣州 101.3 120.1 122.4 200

c4 深圳 100.9 119.5 1210.0 200

c5 瀋陽 100.5 120.1 122.3 200

對於series和dataframe來說,索引都是index型別,index物件是不可修改的型別。對索引型別的常用操作有如下方法。

方法說明

連線乙個index物件,生成乙個新的index物件

.difference(idx)

計算差集,產生新的index物件

.intersection(idx)

計算交集

.union (idx)

計算並集

.delete(loc)

刪除位置loc處的元素

.insert(loc,e)

在位置loc處增加乙個元素e

d = 

d = pd.dataframe(d,index=['c1','c2','c3','c4','c5'])

d

城市	環比	同比	定基

c1 北京 101.5 120.7 121.4

c2 上海 101.2 120.6 122.5

c3 廣州 101.3 120.1 122.4

c4 深圳 100.9 119.5 1210.0

c5 瀋陽 100.5 120.1 122.3

d.columns.delete(2)
index(['城市', '環比', '定基'], dtype='object')
d.columns會返回d對應1軸上的索引,是乙個index物件,d.columns.delete(2)表示返回刪除1軸第二個索引後的索引物件,同理可以得到我們可以使用inesert方法在指定位置新增索引並返回更改後的索引物件:

d.index.insert(5,'c6')
index(['c1', 'c2', 'c3', 'c4', 'c5', 'c6'], dtype='object')
再看乙個例子:

d = 

d = pd.dataframe(d,index=['c1','c2','c3','c4','c5'])

d

城市	環比	同比	定基

c1 北京 101.5 120.7 121.4

c2 上海 101.2 120.6 122.5

c3 廣州 101.3 120.1 122.4

c4 深圳 100.9 119.5 1210.0

c5 瀋陽 100.5 120.1 122.3

newc = d.columns.delete(2)

newc

index(['城市', '環比', '定基'], dtype='object')
newi = d.index.insert(5,'c6')

newi

newi

index(['c1', 'c2', 'c3', 'c4', 'c5', 'c6'], dtype='object')

nd = d.reindex(index=newi,columns=newc).ffill()

nd

城市	環比	定基

c1 北京 101.5 121.4

c2 上海 101.2 122.5

c3 廣州 101.3 122.4

c4 深圳 100.9 1210.0

c5 瀋陽 100.5 122.3

c6 瀋陽 100.5 122.3

此時要注意,如果使用method='ffill』會報錯,網上查了一下也沒有找到具體什麼原因,後續使用method進行填充時建議使用上述方法。

刪除:drop

d = 

d = pd.dataframe(d,index=['c1','c2','c3','c4','c5'])

d

城市	環比	同比	定基

c1 北京 101.5 120.7 121.4

c2 上海 101.2 120.6 122.5

c3 廣州 101.3 120.1 122.4

c4 深圳 100.9 119.5 1210.0

c5 瀋陽 100.5 120.1 122.3

d.drop('c1')
城市	環比	同比	定基

c2 上海 101.2 120.6 122.5

c3 廣州 101.3 120.1 122.4

c4 深圳 100.9 119.5 1210.0

c5 瀋陽 100.5 120.1 122.3

d.drop('環比',axis=1)
城市	同比	定基

c1 北京 120.7 121.4

c2 上海 120.6 122.5

c3 廣州 120.1 122.4

c4 深圳 119.5 1210.0

c5 瀋陽 120.1 122.3

注意,當對dataframe型別進行刪除行軸索引操作時,因為axis預設為0,需要增加乙個axis=1的指令。

Pandas庫的資料型別運算

算術運算根據行列索引,補齊後進行運算,不同索引之間不進行運算,運算預設產生浮點數 補齊時預設填充nan 空值 二維和一維,一維和零維 實數 進行廣播運算 採用 符號進行的二元運算會產生新的物件 標籤相同的行和列進行運算,不同的補齊後運算,補齊的值為nan,nan與任何元素運算都是nan。方法說明 a...

Pandas庫的Series資料型別及其操作詳解

series資料型別 有一組一維陣列和索引組成 1.0 自動索引 如下 所示 當只給定值,不給定索引的時候,系統將會自動補齊索引 import pandas as pd a pd.series 1 2,3 4 a01 1223 34dtype int642.0 自定義索引 如下 所示 給定倆組資料,...

Pandas的DataFrame資料型別

pandas的dataframe資料型別 縱軸表示不同索引axis 0,橫軸表示不同列axis 1 dataframe型別建立 1.從二維ndarray物件建立 import pandas as pd import numpy as np d pd.dataframe np.arange 10 re...