如何比较2个数据框并生成新的数据框

时间:2019-05-08 12:36:05

标签: python pandas loops

我有2个相似的数据框,我想根据条件将第一数据框的每一行与第二数据框进行比较。数据框如下所示:

Dataframe

基于此比较,我想使用新列'change'生成类似的数据框,其中包含基于以下条件的更改:

如果行的值相似,则为'change'='identical',否则,如果日期更改为'change'='new date'。

1 个答案:

答案 0 :(得分:0)

这是一个简单的解决方法。

# Import pandas library 
import pandas as pd 

# One dataframe
data = [['foo', 10], ['bar', 15], ['foobar', 14]] 
df = pd.DataFrame(data, columns = ['Name', 'Age']) 

# Another similar dataframe but foo age is 13 this time 
data = [['foo', 13], ['bar', 15], ['foobar', 14]] 
df2 = pd.DataFrame(data, columns = ['Name', 'Age'])
df3 = df2.copy()
for index, row in df.iterrows():
     if df.at[index,'Age'] != df2.at[index,'Age']:
          df3.at[index,'Change']="Changed"
df3["Change"].fillna("Not Changed",inplace = True)
print(df3)

这是输出

     Name  Age       Change
0     foo   13      Changed
1     bar   15  Not Changed
2  foobar   14  Not Changed