Python—比较整个数据帧会得到与单个元素不同的结果

Python—比较整个数据帧会得到与单个元素不同的结果,python,pandas,dataframe,Python,Pandas,Dataframe,我比较两个数据帧的列,得到的结果与单独比较元素时不同。这适用于比较“无” 在比较数据帧时,是否会奇怪地转换为“无” 编辑:我发现了这一点,但它没有给我任何明确的结果。。。它有什么特点吗?缺陷是否会固定?我认为数据帧中的无值被视为NA值,当您关注单个元素时,它们被视为常规无值df1.isna()显示了这一点。我认为数据帧中的无值被视为NA值,当您关注单个元素时,它们被视为常规无值df1.isna()显示了这一点。您将数据帧视为一维数组,但事实并非如此。打印df1时,您会得到以下输出:

我比较两个数据帧的列,得到的结果与单独比较元素时不同。这适用于比较“无”

在比较数据帧时,是否会奇怪地转换为“无”


编辑:我发现了这一点,但它没有给我任何明确的结果。。。它有什么特点吗?缺陷是否会固定?

我认为数据帧中的无值被视为NA值,当您关注单个元素时,它们被视为常规无值
df1.isna()
显示了这一点。

我认为数据帧中的无值被视为NA值,当您关注单个元素时,它们被视为常规无值
df1.isna()
显示了这一点。

您将数据帧视为一维数组,但事实并非如此。打印
df1
时,您会得到以下输出:

      0
0     a
1  None
2  None
3     b
df1
指的是您的对象<代码>df1[0]指的是您的第一组数据

list(df1[0]) == ['a', None, None, 'b']
list(df2[0]) == ["a", None, "c", "d"]
根据上述情况,我们可以简单地假设:

df1[0][1] == None
df2[0][1] == None
这就是为什么您的第二次
打印是错误的<代码>无!=无
确实是
错误

虽然您使用一维数组初始化数据帧,但pandas创建的对象可以使用更复杂的数据集。

您将数据帧视为一维数组,但事实并非如此。打印
df1
时,您会得到以下输出:

      0
0     a
1  None
2  None
3     b
df1
指的是您的对象<代码>df1[0]指的是您的第一组数据

list(df1[0]) == ['a', None, None, 'b']
list(df2[0]) == ["a", None, "c", "d"]
根据上述情况,我们可以简单地假设:

df1[0][1] == None
df2[0][1] == None
这就是为什么您的第二次
打印是错误的<代码>无!=无
确实是
错误

虽然您使用一维数组初始化数据帧,但pandas创建的对象可以使用更复杂的数据集。

这不是一个bug。请阅读我的回答,您误解了数据帧结构。比较
None
值,
df1[0][1]==df2[0][1]
返回
True
。您可以使用
eq()
,但这与您的问题无关。这不是一个bug。请阅读我的回答,您误解了数据帧结构。比较
None
值,
df1[0][1]==df2[0][1]
返回
True
。您可以使用
eq()
,但这与您的问题无关。我并不感到惊讶没有一个是错误的。我很惊讶竟然没有当我比较整个数据帧时,没有一个是正确的。但是@rolalaw回答说,在比较数据帧时,没有一个被视为NaN。还有楠!=Nan给出了真实的答案我并不惊讶没有没有一个是错误的。我很惊讶竟然没有当我比较整个数据帧时,没有一个是正确的。但是@rolalaw回答说,在比较数据帧时,没有一个被视为NaN。还有楠!=南给出了真实的答案