pandas基礎運算

2021-07-31 20:11:57 字數 2140 閱讀 6957

《python for data analysis》

pandas可以對不同索引的物件進行算術運算。

例如:當物件相加時,如果存在不同的索引對,其結果的索引就是該索引對的並集。自動的資料對齊操作在不重疊的索引處引入了na值。並且會在算術運算中傳播。

in [1]: import numpy as np

in [2]: import pandas as pd

in [3]: from pandas import series, dataframe

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

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

in [6]: df1

out[6]:

a b c d00

1231

4567

28910

11in [7]: df2

out[7]:

a b c d e00

1234

1567

89210

1112

1314315

1617

1819

in [8]: df1+df2

out[8]:

a b c d e

00.0

2.04.0

6.0 nan

19.0

11.0

13.0

15.0 nan

218.0

20.0

22.0

24.0 nan

3 nan nan nan nan nan

in [9]: df1.add(df2, fill_value=0)

out[9]:

a b c d e

00.0

2.04.0

6.04.0

19.0

11.0

13.0

15.0

9.02

18.0

20.0

22.0

24.0

14.0

315.0

16.0

17.0

18.0

19.0

in [10]: df1.reindex(columns=df2.columns, fill_value=0)

out[10]:

a b c d e00

1230

1456

7028

910110

廣播

in [12]: arr = np.arange(12).reshape((3,4))

in [13]: arr

out[13]:

array([[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11]])

in [14]: arr[0] #行

out[14]: array([0, 1, 2, 3])

in [15]: arr - arr[0]

out[15]:

array([[0, 0, 0, 0],

[4, 4, 4, 4],

[8, 8, 8, 8]])

預設情況下,dataframe和series之間的算術運算會將series的索引匹配到dataframe的列,然後沿著行一直向下傳播。series=frame.ix[0]

上例是series取dataframe的行,但是如果想匹配到dataframe的行,且希望在列上傳播,必須使用算術運算方法。frame.sub(series, axis=0)。傳入的軸號就是希望匹配的軸。(series = frame['a']

pandas基礎運算和合併示例

source python資料分析的三劍客 outputs source import numpy as np n n import pandas as pd n n pip install matplotlib n 畫圖,視覺化!n 頭號玩家,虛擬實境遊戲,視覺化,立體化 n import mat...

Pandas 矩陣運算

dataframe.add other,axis columns level none,fill value none dataframe.sub other,axis columns level none,fill value none dataframe.mul other,axis colum...

pandas算術運算

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 11df2 dataframe np.arange 20 reshape 4,5 colum...