为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

郎朗坤 2023-07-18 13:28:38
对于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请帮我解决这个问题。谢谢你的时间。
查看完整描述

2 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

我认为最简单的路径是制作一个临时 df ,我们称之为 df_temp2 ,它是 df_2 的副本,具有重命名的列,然后将其附加到 df_1


df_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 本身。

查看完整回答
反对 回复 2023-07-18
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

import pandas as pd

df =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


查看完整回答
反对 回复 2023-07-18
  • 2 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信