pandas算術運算

2021-08-28 11:08:38 字數 2535 閱讀 7333

df1 = dataframe(np.arange(12).reshape(3,4),columns=list('abcd'))

df1out[74]:

a b c d

0 0 1 2 3

1 4 5 6 7

2 8 9 10 11

df2 = dataframe(np.arange(20).reshape(4,5),columns=list('abcde'))

df2out[79]:

a b c d e

0 0 1 2 3 4

1 5 6 7 8 9

2 10 11 12 13 14

3 15 16 17 18 19

如果單純相加的話,空值會返回nan

df1+df2

out[80]:

a b c d e

0 0.0 2.0 4.0 6.0 nan

1 9.0 11.0 13.0 15.0 nan

2 18.0 20.0 22.0 24.0 nan

3 nan nan nan nan nan

所以需要使用df1的add方法,傳入df2以及乙個fill_value引數:

df1.add(df2,fill_value=0)

out[83]:

a b c d e

0 0.0 2.0 4.0 6.0 4.0

1 9.0 11.0 13.0 15.0 9.0

2 18.0 20.0 22.0 24.0 14.0

3 15.0 16.0 17.0 18.0 19.0

df1.add(df2,fill_value=10)

out[84]:

a b c d e

0 0.0 2.0 4.0 6.0 14.0

1 9.0 11.0 13.0 15.0 19.0

2 18.0 20.0 22.0 24.0 24.0

3 25.0 26.0 27.0 28.0 29.0

方法

說明add

用於加法(+)的方法

sub用於減法(-)的方法

div用於除法(/)的方法

mul用於乘法(*)的方法

series和dataframe之間的計算

df2

out[122]:

a b c d e

z 0 1 2 3 4

x 5 6 7 8 9

c 10 11 12 13 14

v 15 16 17 18 19

series1 = df2.ix[0]

__main__:1: deprecationwarning:

.ix is deprecated. please use

.loc for label based indexing or

.iloc for positional indexing

see the documentation here:

indexing.html#ix-indexer-is-deprecated

series1

out[136]:

a 0

b 1

c 2

d 3

e 4

name: (z,), dtype: int32df2-series1

df2-series1

out[137]:

a b c d e

z 0 0 0 0 0

x 5 5 5 5 5

c 10 10 10 10 10

v 15 15 15 15 15

如果不是一一對應的話,同樣會出現nan

如果希望行在列上廣播,必須用算術運算方法

series3=df2['d']

series3

out[141]:

z 3

x 8

c 13

v 18

name: d, dtype: int32

df2.sub(series3,axis=0)

out[145]:

a b c d e

z -3 -2 -1 0 1

x -3 -2 -1 0 1

c -3 -2 -1 0 1

v -3 -2 -1 0 1

pandas 的算術運算和資料對齊

pandas 還有乙個重要的功能,就是他可以對不同索引的物件進行算數運算。物件相加,如果存在不同的索引對,則結果的索引就是該索引對的並集。先來個例子 in 33 s1 series 7.3,2.5,3.4,1.5 index a c d e in 34 s2 series 2.1,3.6,1.5,4...

變數和算術運算之算術運算(二)

主要內容 1.算術運算的優先順序 2.算術宣告的缺陷 3.在算術表示式中混合整數和實數 4.型別強制轉換 5.邊緣效應 include using namespace std intmain 賦值語句中使用前增量和後增量運算子 k i 等價於k i,i h i等價於j j h j 再例如 i 2,j...

LinuxShell算術運算

bash shell 的算術運算有四種方式 1 使用 expr 外部程式 加法 r expr 4 5 echo r 注意 4 5 這三者之間要有空白 r expr 4 5 錯誤 乘法 r expr 4 5 2 使用 r 4 5 echo r 3 使用 r 4 5 echo r 乘法r expr 4 ...