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

2024-09-30 05:28:45 发布

您现在位置:Python中文网/ 问答频道 /正文

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

到目前为止,这些列似乎没有什么用处,它们最终似乎都是来自上一次合并的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

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


Tags: 数据rightdataframedata参数on情况后缀
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

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

对于您的情况,您希望改为update数据帧

相关问题 更多 >

    热门问题