简体   繁体   English

使用 Pandas 垂直合并 Pandas 数据框而不会丢失列名

[英]merge pandas dataframes vertically without losing column name using pandas

有什么方法可以使用pandas将3个不同的数据帧与不同的列和索引垂直合并,如图像中所示?

df1 is first dataframe have columns 1,2,8,9 df2 is second dataframe have columns 3,4 df3 is third dataframe have columns 5,6,7 df1 是第一个数据框有第 1,2,8,9 列 df2 是第二个数据框有第 3,4 列 df3 是第三个数据框有第 5,6,7 列

Try with :尝试:

// horizontally
pandas.concat([df1, df2, df3], axis=1)

// vertically
pandas.concat([df1, df2, df3])

For more details, you may have a look into Merge, join, concatenate and compare in pandas有关更多详细信息,您可以查看Pandas 中的合并、连接、连接和比较

Examples:例子:

import pandas as pd

df1 = pd.DataFrame({'C1': ['1', '2', '3'], 'C2': ['a', 'b', 'c'], 'C8': ['t', 'u', 'v'], 'C3': ['w', 'x', 'y']})

print (df1)    

df2 = pd.DataFrame({'C3': ['4', '5', '6', '12'], 'C4': ['d', 'e', 'f', 's']})

print (df2)

df3 = pd.DataFrame({'C5': ['7', '8', '9', '10', '11'], 'C6': ['i', 'j', 'k', 'l', 'm'], 'C7': ['n', 'o', 'p', 'q', 'r']})

print (df3)

// horizontally
print (pd.concat([df1, df2, df3], axis=1))

// vertically
print (pd.concat([df1, df2, df3]))

Output:输出:

//df1
 C1 C2 C8 C3
  1  a  t  w
  2  b  u  x
  3  c  v  y
//df2
   C3 C4
   4  d
   5  e
   6  f
  12  s
//df3
   C5 C6 C7
   7  i  n
   8  j  o
   9  k  p
  10  l  q
  11  m  r
// merge df1 df2 df3 horizontally
    C1   C2   C8   C3   C3   C4  C5 C6 C7
    1    a    t    w    4    d   7  i  n
    2    b    u    x    5    e   8  j  o
    3    c    v    y    6    f   9  k  p
  NaN  NaN  NaN  NaN   12    s  10  l  q
  NaN  NaN  NaN  NaN  NaN  NaN  11  m  r

// merge df1 df2 df3 vertically
    C1   C2   C8   C3   C4   C5   C6
    1    a    t    w  NaN  NaN  NaN
    2    b    u    x  NaN  NaN  NaN
    3    c    v    y  NaN  NaN  NaN
  NaN  NaN  NaN    4    d  NaN  NaN
  NaN  NaN  NaN    5    e  NaN  NaN
  NaN  NaN  NaN    6    f  NaN  NaN
  NaN  NaN  NaN   12    s  NaN  NaN
  NaN  NaN  NaN  NaN  NaN    7    i
  NaN  NaN  NaN  NaN  NaN    8    j
  NaN  NaN  NaN  NaN  NaN    9    k
  NaN  NaN  NaN  NaN  NaN   10    l
  NaN  NaN  NaN  NaN  NaN   11    m

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM