要比较两个Pandas数据框是否添加了新行,并与列相关,可以按照以下步骤进行操作:
import pandas as pd
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [4, 5, 6, 7]})
concat
函数将两个数据框合并成一个新的数据框,并设置ignore_index=True
参数以重新索引行:df_concat = pd.concat([df1, df2], ignore_index=True)
duplicated
函数和keep=False
参数检测重复行。如果keep=False
,则所有重复行都被标记为True:duplicated_rows = df_concat.duplicated(keep=False)
any
函数检查是否有任何新行被添加。如果有新行,则返回True,否则返回False:new_rows_added = duplicated_rows.any()
columns_same = df1.columns.equals(df2.columns)
完整的代码示例:
import pandas as pd
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [4, 5, 6, 7]})
df_concat = pd.concat([df1, df2], ignore_index=True)
duplicated_rows = df_concat.duplicated(keep=False)
new_rows_added = duplicated_rows.any()
columns_same = df1.columns.equals(df2.columns)
print("New rows added:", new_rows_added)
print("Columns same:", columns_same)
输出结果:
New rows added: True
Columns same: True
上述代码比较了两个数据框是否添加了新行,并检查了列是否相同。根据输出结果,可以看到有新行被添加,并且列相同。
下一篇:比较两个Pandas数据帧