Pandas學習筆記(三) concat的使用

2021-09-05 01:23:24 字數 2589 閱讀 5972

測試資料準備

實驗環境為python3.7pandas0.23.4,還有jupyter notebook

實驗基於以下資料

import pandas as pd

df1 = pd.dataframe(

, index=[0

,1,2

,3])

df2 = pd.dataframe(

, index=[2

,3,4

,5])

pd.concat

使用方式pd.concat(objs, axis=0, join='outer')

ojbs 是要合併的series或dataframe的列表

axis 預設為0,0代表行(豎向),1代表列(橫向)

join 連線方式,預設為outer,還可以選擇inner

axis的0,1概念一開始搞不清楚的話,會讓人很混亂

簡單理解的話,(0,1)就好比於二維陣列的(行,列)

所以0代表行,按照一行一行的方式連線兩個資料框,乙個資料框就代表一行,連線兩個資料框,就像是往乙個資料框新增一行存放另乙個資料框的資料,連線多個資料框就是新增多行,新增的方向是往下的,所以是豎向的。

而1代表列,按照一列一列的方式連線兩個資料框,乙個資料框代表一列,連線兩個資料框,就是往乙個資料框新增一列,用來存放另乙個資料框的資料,連線多個資料框就是新增多列,新增的方向是往右的,所以是橫向的。

result1 = pd.concat(

[df1,df2]

,axis=0)

result1

# 輸出

a b c d e

0 a0 b0 c0 d0 nan

1 a1 b1 c1 d1 nan

2 a2 b2 c2 d2 nan

3 a3 b3 c3 d3 nan

2 nan b4 c4 d4 e4

3 nan b5 c5 d5 e5

4 nan b6 c6 d6 e6

5 nan b7 c7 d7 e7--

----

----

----

----

----

----

----

----

---result2 = pd.concat(

[df1,df2]

,axis=1)

result2

# 輸出

a b c d b c d e

0 a0 b0 c0 d0 nan nan nan nan

1 a1 b1 c1 d1 nan nan nan nan

2 a2 b2 c2 d2 b4 c4 d4 e4

3 a3 b3 c3 d3 b5 c5 d5 e5

4 nan nan nan nan b6 c6 d6 e6

5 nan nan nan nan b7 c7 d7 e7

可以看到,df2整個放在了df1的下面,在df1和df2的基礎上,自動補上了原來沒有的行列,而且自動填充了空值

join的引數有兩個,預設值outer,還有inner

在我理解,outer就是求兩個dataframe的並集,而inner就是求兩個dataframe的交集

result1 = pd.concat(

[df1,df2]

,axis=

0, join=

'outer'

)result1

# 輸出

a b c d e

0 a0 b0 c0 d0 nan

1 a1 b1 c1 d1 nan

2 a2 b2 c2 d2 nan

3 a3 b3 c3 d3 nan

2 nan b4 c4 d4 e4

3 nan b5 c5 d5 e5

4 nan b6 c6 d6 e6

5 nan b7 c7 d7 e7--

----

----

----

----

----

----

----

----

----

--result3 = pd.concat(

[df1,df2]

, axis=

0, join=

'inner'

)result3

# 輸出

b c d

0 b0 c0 d0

1 b1 c1 d1

2 b2 c2 d2

3 b3 c3 d3

2 b4 c4 d4

3 b5 c5 d5

4 b6 c6 d6

5 b7 c7 d7

result1 (outer)保留了df1和df2的列所有的列

result2 (inner)只保留了df1和df2共同的列

pandas學習筆記(三)

生成乙個以2017 01開始,月為頻率的時間構造器 pd.period 引數 乙個時間戳 freq p pd.period 2017 freq m print p 通過加減整數,將週期整體移動 print p 1 print p 2 輸出 2017 01 2017 02 2016 11 prng p...

pandas學習筆記 三

import pandas as pd import numpy as npdata pd.read csv student.csv data.head 學號姓名 班級年齡 01.0 小明1.0 7.01 2.0小華 1.06.0 23.0 小紅2.0 6.03 4.0小麗 3.08.0 45.0 ...

pandas基礎學習筆記三

二 groupby函式 三 聚合 過濾和變換 第3章 分組.經過groupby後會生成乙個groupby物件,該物件本身不會返回任何東西,只有當相應的方法被呼叫才會起作用 grouped single df.groupby school 根據某一列分組 grouped single.get grou...