合并只有一列不同的两个数据帧.需要在新的数据帧中附加该列.请查看下面的详细视图



对于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&amp_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)则我将在除CCD_ 2之外的所有列中获得以下提到的格式的值;而CCD_ 3将是空列。

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

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

我认为最简单的路径是制作一个临时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()视为在pd.concat()之上编写的方法,但它应用于DF本身。

关于concat((的完整文档此处:pd.concat((docs

希望这有帮助。

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

相关内容

  • 没有找到相关文章

最新更新