Python 合并时强制将后缀添加到数据帧中

Python 合并时强制将后缀添加到数据帧中,python,pandas,dataframe,merge,Python,Pandas,Dataframe,Merge,它给了我重复的/带后缀的列。我看到的大多数问题都是人们希望在他们的数据上加后缀,我希望情况正好相反 到目前为止,这些列似乎没有什么用处,它们最终似乎都是来自上一次合并的NaN 我希望合并通过在发现重复列时覆盖,或者在数据帧不存在时将该列添加到数据帧中来工作。 我希望根据合并的参数进行覆盖,但它似乎默认为保留所有列,并且只满足条件 例子: 理想情况下,在上一次合并中,我希望它覆盖基于参数的左或右数据帧,而不是试图保留数据并添加后缀,您需要的是: 您需要的是: pandas中的合并类似于SQL中的“

它给了我重复的/带后缀的列。我看到的大多数问题都是人们希望在他们的数据上加后缀,我希望情况正好相反

到目前为止,这些列似乎没有什么用处,它们最终似乎都是来自上一次合并的
NaN

我希望合并通过在发现重复列时覆盖,或者在数据帧不存在时将该列添加到数据帧中来工作。 我希望根据合并的参数进行覆盖,但它似乎默认为保留所有列,并且只满足条件

例子: 理想情况下,在上一次合并中,我希望它覆盖基于参数的左或右数据帧,而不是试图保留数据并添加
后缀

,您需要的是:

您需要的是:


pandas中的合并类似于SQL中的“连接”。这将导致使用前缀重命名公共列,以保存2个合并数据帧的值


对于您的情况,您希望改为使用数据帧。

pandas中的合并类似于SQL中的“连接”。这将导致使用前缀重命名公共列,以保存2个合并数据帧的值


对于您的情况,您希望改为使用数据帧。

我注意到在生产中的数据帧上,如果其中一个数据帧没有列,但另一个有列,则它最终会使该数据
NAN
,而不是使用另一个数据帧的值。我注意到在生产中的数据帧上,如果其中一个数据帧没有列,但另一个有列,则它最终会生成该数据
NAN
,而不是获取另一个数据帧的值。
data4 = {'col1': [1, 2], 'col2': [3, 4]}
df4 = pd.DataFrame(data=data4)

data5  = {'col1': [1, 2], 'col2': [3, 4], 'col3': [9, 2]}

df5 = pd.DataFrame(data=data5)

df_merged = pd.merge(df4, df5, how="outer", left_on="col1", right_on="col1")
   col1  col2_x  col2_y  col3
0     1       3       3     9
1     2       4       4     2


data6  = {'col1': [1, 2], 'col2': [3, 4], 'col3': [9, 2]}
df6 = pd.DataFrame(data=data6)

pd.merge(df6, df_merged, how="right", left_on="col1", right_on="col1")
   col1  col2  col3_x  col2_x  col2_y  col3_y
0     1     3       9       3       3       9
1     2     4       2       4       4       2

data4 = {'col1': [1, 2], 'col2': [3, 4]}
df4 = pd.DataFrame(data=data4)

data5  = {'col1': [1, 2], 'col2': [3, 4], 'col3': [9, 2]}

df5 = pd.DataFrame(data=data5)

data6  = {'col1': [1, 2], 'col2': [3, 4], 'col3': [9, 2]}

df6 = pd.DataFrame(data=data6)

print (df4.combine_first(df5).combine_first(df6))

   col1  col2  col3
0     1     3   9.0
1     2     4   2.0