<p>根据您的问题和jpp的诊断,数据帧<em>看起来是相同的,但是它们在第3列的数据类型上有所不同。在</p>
<p>以下是一些比较方法,它们揭示了它们之间的区别:</p>
<pre><code>>>> df1.equals(df3)
False # not so useful, doesn't tell you why they differ
</code></pre>
<p>你真正需要的是<a href="https://pandas.pydata.org/pandas-docs/stable/generated/pandas.testing.assert_frame_equal.html" rel="nofollow noreferrer"><strong>^{<cd1>}</strong></a>:</p>
^{pr2}$
<p><strong><code>pandas.testing.assert_frame_equal()</code></strong>有以下厨房水槽中有用的参数,您可以定制您需要的任何东西:</p>
<pre><code>check_dtype : bool, default True
Whether to check the DataFrame dtype is identical.
check_index_type : bool / string {‘equiv’}, default False
Whether to check the Index class, dtype and inferred_type are identical.
check_column_type : bool / string {‘equiv’}, default False
Whether to check the columns class, dtype and inferred_type are identical.
check_frame_type : bool, default False
Whether to check the DataFrame class is identical.
check_less_precise : bool or int, default False
Specify comparison precision. Only used when check_exact is False. 5 digits (False) or 3 digits (True) after decimal points are compared. If int, then specify the digits to compare
check_names : bool, default True
Whether to check the Index names attribute.
by_blocks : bool, default False
Specify how to compare internal data. If False, compare by columns. If True, compare by blocks.
check_exact : bool, default False
Whether to compare number exactly.
check_datetimelike_compat : bool, default False
Compare datetime-like which is comparable ignoring dtype.
check_categorical : bool, default True
Whether to compare internal Categorical exactly.
check_like : bool, default False
If true, ignore the order of rows & columns
</code></pre>