【发布时间】:2013-10-19 18:59:48
【问题描述】:
在对某些函数进行单元测试的情况下,我正在尝试使用 python pandas 建立 2 个 DataFrame 的相等性:
ipdb> expect
1 2
2012-01-01 00:00:00+00:00 NaN 3
2013-05-14 12:00:00+00:00 3 NaN
ipdb> df
identifier 1 2
timestamp
2012-01-01 00:00:00+00:00 NaN 3
2013-05-14 12:00:00+00:00 3 NaN
ipdb> df[1][0]
nan
ipdb> df[1][0], expect[1][0]
(nan, nan)
ipdb> df[1][0] == expect[1][0]
False
ipdb> df[1][1] == expect[1][1]
True
ipdb> type(df[1][0])
<type 'numpy.float64'>
ipdb> type(expect[1][0])
<type 'numpy.float64'>
ipdb> (list(df[1]), list(expect[1]))
([nan, 3.0], [nan, 3.0])
ipdb> df1, df2 = (list(df[1]), list(expect[1])) ;; df1 == df2
False
鉴于我试图测试整个 expect 与整个 df,包括 NaN 位置,我做错了什么?
比较包括NaNs 在内的系列/数据帧是否相等的最简单方法是什么?
【问题讨论】:
标签: python pandas equality nan