我有一个熊猫数据框: (编辑:实际df)
date
2019-11-01 07:30:00+00:00 1148.144708
2019-11-01 07:45:00+00:00 1148.015876
2019-11-01 08:00:00+00:00 1147.911068
2019-11-01 08:15:00+00:00 1147.925240
2019-11-01 08:30:00+00:00 1148.007117
2019-11-01 08:45:00+00:00 1148.122853
2019-11-01 09:00:00+00:00 1148.251176
2019-11-01 09:15:00+00:00 1148.362736
2019-11-01 09:30:00+00:00 1148.423236
2019-11-01 09:45:00+00:00 1148.528360
Name: value, dtype: float64
我使用以下方法将其保存到Postgres数据库中:
df.to_sql('test_pp', con=engine)
当我以new_df的形式从数据库取回它之后: (编辑:实际df)
date
2019-11-01 07:30:00+00:00 1148.144708
2019-11-01 07:45:00+00:00 1148.015876
2019-11-01 08:00:00+00:00 1147.911068
2019-11-01 08:15:00+00:00 1147.925240
2019-11-01 08:30:00+00:00 1148.007117
2019-11-01 08:45:00+00:00 1148.122853
2019-11-01 09:00:00+00:00 1148.251176
2019-11-01 09:15:00+00:00 1148.362736
2019-11-01 09:30:00+00:00 1148.423236
2019-11-01 09:45:00+00:00 1148.528360
Name: value, dtype: float64
这两个数据帧都不相等。为什么会这样?
df.equals(new_df)
返回 False 。 任何想法? 附注:我还检查了订单和形状,并根据日期对其进行了排序。
我还检查了索引
DatetimeIndex(['2019-11-01 09:45:00+00:00'], dtype='datetime64[ns, UTC]', name='date', freq=None),
DatetimeIndex(['2019-11-01 09:45:00+00:00'], dtype='datetime64[ns, UTC]', name='date', freq=None))
和dtypes
df['value'].dtypes, new_df['value'].dtypes
返回
(dtype('float64'), dtype('float64'))
奇怪的是,
df['value'].iloc[-1:].index == new_df['value'].iloc[-1:].index
返回 True
和
df['value'].iloc[-1].values == new_df['value'].iloc[-1].values
返回 False