找出左边 DataFrame 中没有匹配到的行,可以直接从左连接的结果中提取出来,而不需要再次进行合并。以下是修改后的代码:
import pandas as pd
# 合并两个 DataFrame,进行左连接
df_jiaoji = pd.merge(data_old, data_new, on=['week', 'itemId'], how='left', indicator=True)
# 找出左边 DataFrame 中没有匹配到的行
df_chaji = df_jiaoji[df_jiaoji['_merge'] == 'left_only'].drop(columns=['_merge'])
# 输出结果
print(df_chaji)
在这个代码中,我们直接从左连接的结果 df_jiaoji 中提取出 _merge 列值为 'left_only' 的行,这些行即为左边 DataFrame 中没有匹配到的行。然后去除 _merge 列并输出结果。
注意:一定要有indicator=True,没有指定 indicator=True 参数时,默认情况下合并结果中不会包含 _merge 列。