pandas中concat用法

import numpy as np
import pandas as pd
arr=np.arange(12).reshape((3,4))
In[2]: arr
Out[2]: 
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

In[2]: np.concatenate([arr,arr])#numpy合并
Out[3]: 
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
s1=pd.Series([0,1],index=['a','b'])
s2=pd.Series([2,3,4],index=['c','d','e'])
s3=pd.Series([5,6],index=['f','g'])
In[4]: pd.concat([s1,s2,s3])#Series行合并
Out[4]: 
a    0
b    1
c    2
d    3
e    4
f    5
g    6
dtype: int64

In[5]: pd.concat([s1,s2,s3],axis=1)#Series列合并
Out[5]: 
     0    1    2
a  0.0  NaN  NaN
b  1.0  NaN  NaN
c  NaN  2.0  NaN
d  NaN  3.0  NaN
e  NaN  4.0  NaN
f  NaN  NaN  5.0
g  NaN  NaN  6.0

s4=pd.Series([0,5,5,6],index=['a','b','f','g'])
In[6]: pd.concat([s1,s4],axis=1,join='inner')#并集
Out[6]: 
   0  1
a  0  0
b  1  5
In[7]: pd.concat([s1,s4],axis=1,join_axes=[['a','c','b','e']])#指定索引
Out[7]: 
     0    1
a  0.0  0.0
c  NaN  NaN
b  1.0  5.0
e  NaN  NaN
In[9]:  pd.concat([s1,s2,s3],keys=['one','two','three'])#层次化索引
Out[9]: 
one    a    0
       b    1
two    c    2
       d    3
       e    4
three  f    5
       g    6
dtype: int64

In[10]: pd.concat([s1,s2,s3],axis=1,keys=['one','two','three'])#作为列
Out[10]: 
   one  two  three
a  0.0  NaN    NaN
b  1.0  NaN    NaN
c  NaN  2.0    NaN
d  NaN  3.0    NaN
e  NaN  4.0    NaN
f  NaN  NaN    5.0
g  NaN  NaN    6.0

df1=pd.DataFrame(np.arange(6).reshape(3,2),index=['a','b','c'],columns=['one','two'])
df2=pd.DataFrame(5 + np.arange(4).reshape(2,2),index=['a','c'],columns=['three','four'])
In[11]: pd.concat([df1,df2],axis=1,keys=['level1','level2'])#DataFrame列外索引
Out[11]: 
  level1     level2     
     one two  three four
a      0   1    5.0  6.0
b      2   3    NaN  NaN
c      4   5    7.0  8.0

In[12]: pd.concat({'level1':df1,'level2':df2},axis=1)#字典键做列外索引
Out[12]: 
  level1     level2     
     one two  three four
a      0   1    5.0  6.0
b      2   3    NaN  NaN
c      4   5    7.0  8.0

In[13]: pd.concat([df1,df2],axis=1,keys=['level1','level2'],names=['upper','lower'])#外内索引名字
Out[13]: 
upper level1     level2     
lower    one two  three four
a          0   1    5.0  6.0
b          2   3    NaN  NaN
c          4   5    7.0  8.0

In[14]: pd.concat([df1,df2],keys=['level1','level2'],names=['upper','lower'])
Out[14]: 
              four  one  three  two
upper  lower                       
level1 a       NaN  0.0    NaN  1.0
       b       NaN  2.0    NaN  3.0
       c       NaN  4.0    NaN  5.0
level2 a       6.0  NaN    5.0  NaN
       c       8.0  NaN    7.0  NaN


    原文作者:castingA3T
    原文地址: https://blog.csdn.net/castingA3T/article/details/78998961
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞