接上篇,假设df3和df4是两个DataFrame对象,每个DataFrame有'交易时间'、'收入金额'和'交易金额'列,使用以下代码完成df3和df4的按列数据合并,并检查条件1——‘交易时间’一致,但df3的‘收入金额’或‘支出金额’与df4‘交易金额’不相等的数据行:
# 合并df3和df4,根据'交易时间'列进行外连接
merged_df = pd.merge(df3, df4, on='交易时间', how='outer', suffixes=('_df3', '_df4'))
# 检查条件1:‘交易时间’一致,但df3的‘收入金额’或‘支出金额’与df4‘交易金额’不相等的数据行
condition_1 = ((merged_df['收入金额'] != merged_df['交易金额']) & (merged_df['支出金额'] != abs(merged_df['交易金额']))) & merged_df['交易时间'].notnull()
# 打印符合条件1的数据行
merged_df[condition_1]
注:如果你使用jupyter,就用上面的第三行代码,否则,就得改为print()函数:
# 合并df3和df4,根据'交易时间'列进行外连接
merged_df = pd.merge(df3, df4, on='交易时间', how='outer', suffixes=('_df3', '_df4'))
# 检查条件1:‘交易时间’一致,但df3的‘收入金额’或‘支出金额’与df4‘交易金额’不相等的数据行
condition_1 = ((merged_df['收入金额'] != merged_df['交易金额']) & (merged_df['支出金额'] != abs(merged_df['交易金额']))) & merged_df['交易时间'].notnull()
# 打印符合条件1的数据行
print(merged_df[condition_1])
接着,筛选条件2——‘交易时间’列,df3有但df4没有的日期:
# 检查条件2:‘交易时间’列,df3有但df4没有的日期
missing_dates_df3 = df3[~df3['交易时间'].isin(df4['交易时间'])]
missing_dates_df3
最后,筛选条件3——‘交易时间’列,df4有但df3没有的日期:
# 检查条件3:‘交易时间’列,df4有但df3没有的日期
missing_dates_df4 = df4[~df4['交易时间'].isin(df3['交易时间'])]
missing_dates_df4
以上,三次条件得到的三次输出,就是数据中存在的所有问题,恭喜你!所有问题都被你找到了!