相关疑难解决方法(0)

比较两个数据帧并获得差异

我有两个数据帧.例子:

df1:
Date       Fruit  Num  Color 
2013-11-24 Banana 22.1 Yellow
2013-11-24 Orange  8.6 Orange
2013-11-24 Apple   7.6 Green
2013-11-24 Celery 10.2 Green

df2:
Date       Fruit  Num  Color 
2013-11-24 Banana 22.1 Yellow
2013-11-24 Orange  8.6 Orange
2013-11-24 Apple   7.6 Green
2013-11-24 Celery 10.2 Green
2013-11-25 Apple  22.1 Red
2013-11-25 Orange  8.6 Orange
Run Code Online (Sandbox Code Playgroud)

每个数据帧都以Date作为索引.两个数据帧都具有相同的结构.

我想要做的是比较这两个数据帧,并找出df2中哪些行不在df1中.我想比较日期(索引)和第一列(Banana,APple等),看看它们是否存在于df2和df1中.

我尝试过以下方法:

对于第一种方法,我得到了这个错误:"异常:只能比较标记相同的DataFrame对象".我已经尝试删除日期作为索引,但得到相同的错误.

第三种方法中,我得到断言返回False但无法弄清楚如何实际看到不同的行.

任何指针都会受到欢迎

python dataframe pandas

63
推荐指数
7
解决办法
12万
查看次数

Pandas DataFrames与NaNs相等比较

在单元测试一些函数的上下文中,我试图使用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
Run Code Online (Sandbox Code Playgroud)

鉴于我试图expect对整个(df包括NaN职位)进行全面测试,我做错了什么?

比较包括 …

python equality nan pandas

26
推荐指数
4
解决办法
3万
查看次数

获取pandas布尔系列为True的索引列表

我有一个带有布尔条目的熊猫系列.我想得到值为的索引列表True.

例如输入 pd.Series([True, False, True, True, False, False, False, True])

应该产生输出[0,2,3,7].

我可以用列表理解来做到这一点,但有更清洁或更快的东西吗?

python series pandas

14
推荐指数
2
解决办法
8131
查看次数

Pandas 数据框:allclose

更新:要比较“关闭”而不是“相等”,请在对“assert_frame_equal”的调用中使用“check_exact=False”,详情如下:https ://pandas.pydata.org/pandas-docs/stable/generated/pandas.testing .assert_frame_equal.html

原始问题: Pandas 数据框包含N列浮点数。

我想检查每对可能的列中的元素是否相等(因此检查 i 列中的所有元素是否与 j 列中的所有元素在某个容差范围内接近)。

我可以迭代和使用np.allclose(...),但我想知道在 Pandas 中是否有更好的(阅读:内置)方式来做到这一点,理想情况下我可以使用列标签?

我在想:df.allclose(['a', 'b', 'c'])某种东西......

python numpy dataframe pandas

6
推荐指数
0
解决办法
1104
查看次数

标签 统计

pandas ×4

python ×4

dataframe ×2

equality ×1

nan ×1

numpy ×1

series ×1