python - Pandas - 合并数据框

标签 python pandas dataframe

我是 pandas 新手,我想合并两个数据框,但我不确定如何正确执行此操作。所以我有两个数据帧 df 和 df1,其中 df1 是 df 的子集。我对 df1 执行了不同的操作,并且有新列,我想将其合并回 df。

   df
   Index col1 col2  col3                  
     1    a    1234  5a
     2    b    3456  c4
     3    c    3613  9y
     4    d    9103  0l
     5    e    8133  9m
     6    f    6790  7h

  df1
  Index col1 col2  col3            
     3    c    3613  9y
     5    e    8133  9m
     6    f    6790  7h

我从 df 和 df1 开始,并对 df1 应用一个操作,结果是:

    df1
    Index col1 col2  col3  col4  col5  
     3    c    3613  9y    qwrt  hkjg
     5    e    8133  9m    asdf  jgnm
     6    f    6790  7h    asdf  sajf

所以我现在的问题是如何基于 col1 将 df1 合并回 df 中以给出类似的内容(本质上是将 nans 添加到不属于 df1 的列并保留原始数据帧 df 的顺序)

   Index col1 col2  col3  col4   col5 
     1    a    1234  5a     nan   nan
     2    b    3456  c4     nan   nan
     3    c    3613  9y     qwrt  hkjg           
     4    d    9103  0l     nan   nan
     5    e    8133  9m     asdf  jgnm
     6    f    6790  7h     asdf  sajf

最佳答案

IIUC,你需要这个

df.merge(df1, how='outer')

输出

index   col1    col2    col3    col4    col5
0   1   a   1234    5a  NaN     NaN
1   2   b   3456    c4  NaN     NaN
2   3   c   3613    9y  qwrt    hkjg
3   4   d   9103    0l  NaN     NaN
4   5   e   8133    9m  asdf    jgnm
5   6   f   6790    7h  asdf    sajf

关于python - Pandas - 合并数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58182989/

相关文章:

python - 在覆盖整个 Canvas 的 python Tkinter Canvas 上绘制矩形不显示顶部和左侧边框

python - 从 Pandas 的每组中抽取 n 行

python - 将计数器应用于 pandas 的唯一列值

python - 将数据帧与单个值进行比较时如何获取返回的模式

python - 对 Pandas 数据框进行子集化的最佳方法

python - 并行迭代 pandas df

python - c 指针和 ctypes

python - Python 字典文字和字典(成对列表)是否保持其键顺序?

python - 对多列进行分组并过滤并拆分为单独的数据帧

python - DASK:当一方的 key 为 NA 时,合并会抛出错误,而 pd.merge 有效