測試資料準備
實驗環境為python3.7
和pandas0.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...