Python 如何连接两个数据帧,但在发生冲突时仅从一个数据帧中获取值?

Python 如何连接两个数据帧,但在发生冲突时仅从一个数据帧中获取值?,python,pandas,Python,Pandas,我有两个数据帧: 1: 1: 我想连接它们,但当索引相同时,第一个优先。所以我想得到: col1 col2 a a1 a2 b b1 b2 c c1 c2 我找不到一个简单的方法来做这件事。有什么想法吗?与“按索引选择第一个重复行”一起使用: df = pd.concat([df1, df2]) df = df[~df.index.duplicated()] print (df) col1 col2 a a1 a2 b b1 b

我有两个数据帧:

1:

1:

我想连接它们,但当索引相同时,第一个优先。所以我想得到:

     col1 col2
a    a1    a2
b    b1    b2
c    c1    c2
我找不到一个简单的方法来做这件事。有什么想法吗?

与“按索引选择第一个重复行”一起使用:

df = pd.concat([df1, df2])
df = df[~df.index.duplicated()]
print (df)
  col1 col2
a   a1   a2
b   b1   b2
c   c1   c2

您可以先使用
combine\u

import pandas as pd

df1 = pd.DataFrame([['a1', 'a2'], ['b1', 'b2']], index=['a', 'b'], columns=['col1', 'col2'])
df2 = pd.DataFrame([['b3', 'b4'], ['c1', 'c2']], index=['b', 'c'], columns=['col1', 'col2'])

df1.combine_first(df2)

#   col1 col2
# a   a1   a2
# b   b1   b2
# c   c1   c2

嘿谢谢你的回答。这是否总是保留来自第一个数据帧的值?是的,如果索引中存在重复项。这在我的数据集上似乎不起作用。也许还有别的地方出了问题。似乎没有删除重复的标记。是数据机密吗?谢谢你的回答,但这似乎对我的实际数据集也不起作用。我仍然有两个“b”行的等价项。我猜肯定还有别的地方出错了,所以问题是一个索引保存为字符串,另一个保存为整数。无论如何,非常感谢!
df = pd.concat([df1, df2])
df = df[~df.index.duplicated()]
print (df)
  col1 col2
a   a1   a2
b   b1   b2
c   c1   c2
import pandas as pd

df1 = pd.DataFrame([['a1', 'a2'], ['b1', 'b2']], index=['a', 'b'], columns=['col1', 'col2'])
df2 = pd.DataFrame([['b3', 'b4'], ['c1', 'c2']], index=['b', 'c'], columns=['col1', 'col2'])

df1.combine_first(df2)

#   col1 col2
# a   a1   a2
# b   b1   b2
# c   c1   c2