算術運算根據行列索引,補齊後進行運算,不同索引之間不進行運算,運算預設產生浮點數 ;
補齊時預設填充nan(空值);
二維和一維,一維和零維(實數)進行廣播運算;
採用±*/符號進行的二元運算會產生新的物件;
標籤相同的行和列進行運算,不同的補齊後運算,補齊的值為nan,nan與任何元素運算都是nan。
方法說明
.add(d,**argws)
型別間加法運算,可選引數
.sub(d,**argws)
型別間減法法運算,可選引數
.mul(d,**argws)
型別間乘法法運算,可選引數
.div(d,**argws)
型別間除法法運算,可選引數
這與±*/相比,好處在於可以增加一些可選引數。
可以看到使用fill_vallue先對a和b缺少的位置進行填充,隨後再進行運算。
不同維度運算的結果如何呢?
b = pd.dataframe(np.arange(20).reshape(4,5))
b
0 1 2 3 4
0 0 1 2 3 4
1 5 6 7 8 9
2 10 11 12 13 14
3 15 16 17 18 19
c = pd.series(np.arange(4))
c
0 0
1 1
2 2
3 3
dtype: int32
c - 10
0 -10
1 -9
2 -8
3 -7
dtype: int32
可以看到,一維和0維進行運算使用廣播功能,相當於對0維資料使用當前值(10)填充至於一維資料量相同,在進行運算。
同理c-b也會將一維的c作用到b的每乙個維度上,c預設作用到了b的一軸上,b中的每一行都與c做了相應運算。若要指定在0軸上發生運算,也就是希望c中的每一列都減去b中的每一列,這時就需要使用方法形式的運算來增加可選引數axis=0.
b.sub(c,axis=0)
0 1 2 3 4
0 0 1 2 3 4
1 4 5 6 7 8
2 8 9 10 11 12
3 12 13 14 15 16
a = pd.dataframe(np.arange(20).reshape(4,5))
a
0 1 2 3 4
0 0 1 2 3 4
1 5 6 7 8 9
2 10 11 12 13 14
3 15 16 17 18 19
b = pd.dataframe(np.arange(20,0,-1).reshape(4,5))
b
0 1 2 3 4
0 20 19 18 17 16
1 15 14 13 12 11
2 10 9 8 7 6
3 5 4 3 2 1
a > b
0 1 2 3 4
0 false false false false false
1 false false false false false
2 false true true true true
3 true true true true true
當同維度進行運算時,需要保證尺寸一致,不存在填充的情況下,尺寸不同會直接報錯。
c = pd.series(np.arange(5))
c
0 0
1 1
2 2
3 3
4 4
dtype: int32
a > c
0 1 2 3 4
0 false false false false false
1 true true true true true
2 true true true true true
3 true true true true true
可以看到,不同維度時,使用廣播運算, 預設在1軸。 Pandas的庫的資料型別操作
本文的主要內容是基於中國大學mooc 慕課 中的 python資料分析與視覺化 課程進行整理和總結。改變series和dataframe物件。d.reindex index c5 c4 c3 c2 c1 城市 環比 同比 定基 c5 瀋陽 100.5 120.1 122.3 c4 深圳 100.9 ...
Pandas庫介紹 Series資料型別
pandas是python的第三方庫,提供高效能易用資料型別和分析工具。提供適合分析的資料型別 提供分析資料的函式 pandas是基於numpy實現的 import pandas as pd d pd.series range 20 print d d.cumsum 計算前n項的累加和 輸出結果 0...
Pandas庫的Series資料型別及其操作詳解
series資料型別 有一組一維陣列和索引組成 1.0 自動索引 如下 所示 當只給定值,不給定索引的時候,系統將會自動補齊索引 import pandas as pd a pd.series 1 2,3 4 a01 1223 34dtype int642.0 自定義索引 如下 所示 給定倆組資料,...