我正在尝试比较两个数据帧(两个标题都相同),并突出显示两个帧中不相似的数据。
现在,我想将突出显示到保留标题的excel表中的那些行打印出来。我无法做到这一点
答案 0 :(得分:0)
您可以通过比较每个对应行的每个元素来检查差异(在这里,我使用唯一的id
列来查找对应的行)。如果存在差异,则可以将其附加到新的数据框中。最后将新数据框保存为excel格式。
df_differnt_rows = pd.DataFrame(columns=['id','B','C'])
df1 = pd.DataFrame([[1,2,3],[2,2,3],[3,2,3]], columns=['id','B','C'])
df2 = pd.DataFrame([[1,2,3],[2,"different",2],[3,2,3]], columns=['id','B','C'])
for i, row in df1.iterrows():
compare_row = df2.loc[df2['id'] == row['id']].iloc[0]
if all(row == compare_row):
continue
df_differnt_rows = df_differnt_rows.append(compare_row)
这将产生另一个df,该df的所有行在df1和df2之间都是不同的。
print(df_differnt_rows)
id B C
1 2 different 2
使用.to_excel()
方法保存:
df_differnt_rows.to_excel('df_differnt_rows.xlsx')
如果要突出显示excel文件中的单元格,请签出openpyxl(即patternfill)。
答案 1 :(得分:-1)
第1步:-选择所需行并将其存储在新框架中,例如df (可以使用this在python中选择行)
第2步:- 使用这个:-
df.to_excel (r'C:\Users\Desktop\selected_dataframe.xlsx')
#Don't forget to add '.xlsx' at the end of the path