首页 > 解决方案 > 比较两个数据帧并通过比较一列找到不在第二个数据帧中的行

问题描述

我希望获取具有相同列的 2 个数据帧,并基于 1 列进行比较,并生成一个新的数据帧,其中包含未出现在第二个数据帧中的行。这是一个带有打印类型的数据帧片段。我也尝试过pd.to_datetime(df['Date'])它们以确保我将苹果与苹果进行比较。

df1

Date       object
Open      float64
High      float64
Low       float64
Close     float64
Volume      int32
dtype: object
            Date    Open    High     Low   Close   Volume
0     2000-01-04   24.35   24.35   23.55   23.70  1372800
1     2000-01-05   23.80   23.90   23.38   23.38  2746800
2     2000-01-06   23.48   23.82   23.38   23.70  2243200
3     2000-01-07   23.60   23.60   23.12   23.45  1610400
4     2000-01-10   23.48   23.48   22.90   22.90  1728600

df2

Date      object
Open      object
High      object
Low       object
Close     object
Volume     int64
dtype: object
            Date    Open    High     Low   Close   Volume
0     2000-01-04   24.35   24.35   23.55   23.70  1372800
1     2000-01-05   23.80   23.90   23.38   23.38  2746800
2     2000-01-06   23.48   23.83   23.38   23.70  2243200
3     2000-01-07   23.60   23.60   23.13   23.45  1610400

输出

            Date    Open    High     Low   Close   Volume
4     2000-01-10   23.48   23.48   22.90   22.90  1728600

我使用的代码是:

df1[~df1.Date.isin(df2.Date.values)]

这在我从 .csv 加载 df1 时有效,但是当我从网站拉取它时,它会产生所有行。我不明白比较如何看不到相同的日期。

我将它们都保存为 .csv 并进行了比较,但我看不出有什么区别。

任何诊断此问题的帮助将不胜感激。

谢谢

标签: pythonpandasdataframecompare

解决方案


推荐阅读