您的位置:首页 > 其它

pandas入门——数据合并concat函数

2017-08-15 19:08 489 查看

数据合并concat函数

创建数据框

# 导入pandas与numpy包
import pandas as pd
import numpy as np

# 创建两个index与columns有重合的数据框
df1 = pd.DataFrame(data=np.ones((5,6))*1,columns=["a","b","c","d","e","f"],index=[0,1,2,3,4])
df2 = pd.DataFrame(data=np.ones((5,6))*2,columns=["e","f","g","h","j","k"],index=[2,3,4,5,6])

print(df1)
print(df2)


a   b   c   d   e   f
0   1.0 1.0 1.0 1.0 1.0 1.0
1   1.0 1.0 1.0 1.0 1.0 1.0
2   1.0 1.0 1.0 1.0 1.0 1.0
3   1.0 1.0 1.0 1.0 1.0 1.0
4   1.0 1.0 1.0 1.0 1.0 1.0

e   f   g   h   j   k
2   2.0 2.0 2.0 2.0 2.0 2.0
3   2.0 2.0 2.0 2.0 2.0 2.0
4   2.0 2.0 2.0 2.0 2.0 2.0
5   2.0 2.0 2.0 2.0 2.0 2.0
6   2.0 2.0 2.0 2.0 2.0 2.0


进行竖直方向的合并 并且使用的合并方式是outer

print(pd.concat(objs=[df1,df2],axis=0,join="outer"))


a   b   c   d   e   f   g   h   j   k
0   1.0 1.0 1.0 1.0 1.0 1.0 NaN NaN NaN NaN
1   1.0 1.0 1.0 1.0 1.0 1.0 NaN NaN NaN NaN
2   1.0 1.0 1.0 1.0 1.0 1.0 NaN NaN NaN NaN
3   1.0 1.0 1.0 1.0 1.0 1.0 NaN NaN NaN NaN
4   1.0 1.0 1.0 1.0 1.0 1.0 NaN NaN NaN NaN
2   NaN NaN NaN NaN 2.0 2.0 2.0 2.0 2.0 2.0
3   NaN NaN NaN NaN 2.0 2.0 2.0 2.0 2.0 2.0
4   NaN NaN NaN NaN 2.0 2.0 2.0 2.0 2.0 2.0
5   NaN NaN NaN NaN 2.0 2.0 2.0 2.0 2.0 2.0
6   NaN NaN NaN NaN 2.0 2.0 2.0 2.0 2.0 2.0


进行水平方向的合并 并且使用的合并方式是outer

print(pd.concat(objs=[df1,df2],axis=1,join="outer"))


a   b   c   d   e   f   e   f   g   h   j   k
0   1.0 1.0 1.0 1.0 1.0 1.0 NaN NaN NaN NaN NaN NaN
1   1.0 1.0 1.0 1.0 1.0<
4000
/span> 1.0 NaN NaN NaN NaN NaN NaN
2   1.0 1.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0 2.0 2.0
3   1.0 1.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0 2.0 2.0
4   1.0 1.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0 2.0 2.0
5   NaN NaN NaN NaN NaN NaN 2.0 2.0 2.0 2.0 2.0 2.0
6   NaN NaN NaN NaN NaN NaN 2.0 2.0 2.0 2.0 2.0 2.0


进行竖直方向的合并 并且使用的合并方式是inner

print(pd.concat(objs=[df1,df2],axis=0,join="inner"))


e   f
0   1.0 1.0
1   1.0 1.0
2   1.0 1.0
3   1.0 1.0
4   1.0 1.0
2   2.0 2.0
3   2.0 2.0
4   2.0 2.0
5   2.0 2.0
6   2.0 2.0


进行水平方向的合并 并且使用的合并方式是inner

print(pd.concat(objs=[df1,df2],axis=1,join="inner"))


a   b   c   d   e   f   e   f   g   h   j   k
2   1.0 1.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0 2.0 2.0
3   1.0 1.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0 2.0 2.0
4   1.0 1.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0 2.0 2.0


以df1的索引为主进行合并 在水平方向

print(pd.concat(objs=[df1,df2],join_axes=[df1.index],axis=1))


a   b   c   d   e   f   e   f   g   h   j   k
0   1.0 1.0 1.0 1.0 1.0 1.0 NaN NaN NaN NaN NaN NaN
1   1.0 1.0 1.0 1.0 1.0 1.0 NaN NaN NaN NaN NaN NaN
2   1.0 1.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0 2.0 2.0
3   1.0 1.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0 2.0 2.0
4   1.0 1.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0 2.0 2.0


以df1的列为主进行合并 在垂直方向

print(pd.concat(objs=[df1,df2],axis=0,join_axes=[df1.columns]))


a   b   c   d   e   f
0   1.0 1.0 1.0 1.0 1.0 1.0
1   1.0 1.0 1.0 1.0 1.0 1.0
2   1.0 1.0 1.0 1.0 1.0 1.0
3   1.0 1.0 1.0 1.0 1.0 1.0
4   1.0 1.0 1.0 1.0 1.0 1.0
2   NaN NaN NaN NaN 2.0 2.0
3   NaN NaN NaN NaN 2.0 2.0
4   NaN NaN NaN NaN 2.0 2.0
5   NaN NaN NaN NaN 2.0 2.0
6   NaN NaN NaN NaN 2.0 2.0


dataframe追加数据框

print(df1.append(df2,ignore_index=True))


a   b   c   d   e   f   g   h   j   k
0   1.0 1.0 1.0 1.0 1.0 1.0 NaN NaN NaN NaN
1   1.0 1.0 1.0 1.0 1.0 1.0 NaN NaN NaN NaN
2   1.0 1.0 1.0 1.0 1.0 1.0 NaN NaN NaN NaN
3   1.0 1.0 1.0 1.0 1.0 1.0 NaN NaN NaN NaN
4   1.0 1.0 1.0 1.0 1.0 1.0 NaN NaN NaN NaN
2   NaN NaN NaN NaN 2.0 2.0 2.0 2.0 2.0 2.0
3   NaN NaN NaN NaN 2.0 2.0 2.0 2.0 2.0 2.0
4   NaN NaN NaN NaN 2.0 2.0 2.0 2.0 2.0 2.0
5   NaN NaN NaN NaN 2.0 2.0 2.0 2.0 2.0 2.0
6   NaN NaN NaN NaN 2.0 2.0 2.0 2.0 2.0 2.0


dataframe追加series

s1 = pd.Series(data=np.arange(6),index=["a","b","c","d","e","f"])
print(df1.append(s1,ignore_index=True))


a   b   c   d   e   f
0   1.0 1.0 1.0 1.0 1.0 1.0
1   1.0 1.0 1.0 1.0 1.0 1.0
2   1.0 1.0 1.0 1.0 1.0 1.0
3   1.0 1.0 1.0 1.0 1.0 1.0
4   1.0 1.0 1.0 1.0 1.0 1.0
5   0.0 1.0 2.0 3.0 4.0 5.0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  pandas