繁体   English   中英

如何在一列上覆盖具有覆盖的熊猫数据框?

[英]How to concatenate pandas dataframes with override on one column?

考虑以下数据帧:

import pandas as pd

data1={'column_a' : ['a','a','b','c','d','e'],
      'column_b' : [1,2,3,4,5,6],
      'column_c' : [9,8,6,4,5,4]}

data2={'column_a' : ['f','f','g','a','a','a'],
      'column_b' : [7,8,9,7,5,6],
      'column_c' : [6,8,7,6,5,4]}

df_1 = pd.DataFrame(data1)
df_2 = pd.DataFrame(data2)

您将如何连接2个数据帧,以使df_2追加到df_1 ,但在column_a上覆盖df_1 我正在寻找以下结果

column_a    column_b    column_c
b   3   6
c   4   4
d   5   5
e   6   4
f   7   6
f   8   8
g   9   7
a   7   6
a   5   5
a   6   4

请注意, df_1中顶部带有'a'的2行不再df_1 ,因为它们被df_2的3 a覆盖了。

只需在appendconcat前做一个过滤器

pd.concat([df_1.loc[~df_1.column_a.isin(df_2.column_a)],df_2])
Out[29]: 
  column_a  column_b  column_c
2        b         3         6
3        c         4         4
4        d         5         5
5        e         6         4
0        f         7         6
1        f         8         8
2        g         9         7
3        a         7         6
4        a         5         5
5        a         6         4

暂无
暂无

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

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