合并两个仅一列不同的数据框。需要将该列附加到新数据框中。请查看下面的详细视图

对于Python来说,这不太新鲜,我正在尝试合并两个具有相似列的数据框。第二个数据帧由 1 列组成,需要将其附加到新数据帧中。

使用的代码:

df3 = pd.merge(df,df1[['Id','Value_data']],

               on = 'Id')


df3 = pd.merge(df,df1[['Id','Value_data']],

               on = 'Id', how='outer')

获取输出 csv 为


Unnamed: 0  Id_x    Number_x    Class_x Section_x   Place_x Name_x  Executed_Date_x Version_x   Value   PartDateTime_x  Cycles_x    Id_y    Mumber_y    Class_y Section_y   Place_y Name_y  Executed_Date_y Version_y   Value_data  PartDateTime_y  Cycles_y

虽然我不想要 _x & _y 我希望输出是:


Id  Number  Class   Section Place   Name    Executed_Date   Version Value Value_data    PartDateTime    Cycles

如果我使用df2=pd.concat([df,df1],axis=0,ignore_index=True) ,那么我将在除 ; 之外的所有列中获得以下格式的值Value_data:而Value_data将是空列。


Id  Number  Class   Section Place   Name    Executed_Date   Version Value Value_data    PartDateTime    Cycles

请帮我解决这个问题。谢谢你的时间。


郎朗坤
浏览 85回答 2
2回答

哆啦的时光机

我认为最简单的路径是制作一个临时 df ,我们称之为 df_temp2 ,它是 df_2 的副本,具有重命名的列,然后将其附加到 df_1df_temp2 = df_2.copy()df_temp2.columns = ['..','..', .... 'value' ...]然后df_total = df_1.append(df_temp2)这为您提供了包含 DF_1 和 DF_2 的所有行的总 DataFrame。'append()' 方法支持一些参数,请查看文档以获取更多详细信息。- - 添加 - - - -另一种可能的方法是使用pd.concat()函数,它可以以与广告方法相同的方式工作.append(),如下所示result = pd.concat([df_1, df_temp2]) 在您的情况下,这两种方法会产生相似的性能。您可以将其视为append()一种写在 DF 之上的方法pd.concat(),但它应用于 DF 本身。

拉莫斯之舞

import pandas as pddf =pd.read_csv('C:/Users/output_2.csv')df1 pd.read_csv('C:/Users/output_1.csv')df1_temp=df1[['Id','Cycles','Value_data']].copy()df3=pd.merge(df,df1_temp,on = ['Id','Cycles'], how='inner')df3=df3.drop(columns="Unnamed: 0")df3.to_csv('C:/Users/output.csv')This worked
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python