我有一个功能,
extract_redundant_values
,从pandas数据帧中提取冗余行。我正在通过运行来测试它
in_df
生成
out_df
。然后,我将其与我的预期输出进行比较
expected_out_df
。它们似乎具有相同的索引、列和值,但根据
pd.DataFrame().equals()
:
import numpy as np
import pandas as pd
def extract_redundant_values(df, col):
unique_df = df.drop_duplicates(subset=[col],
keep = False)
redundant_df = df[~df.index.isin(unique_df.index)]
return redundant_df
expected_columns = ['Col1', 'Col2', 'Col3']
in_df = pd.DataFrame(data = [[1, 2, 3],
[4, 6, 6],
[7, 8, 9]],
columns = expected_columns)
out_df = extract_redundant_values(df = in_df,
col = "Col1")
expected_out_df = pd.DataFrame(columns = expected_columns)
assert out_df.columns.equals(expected_out_df.columns)
assert out_df.index.equals(expected_out_df.index)
assert np.array_equal(expected_out_df.values, out_df.values)
assert out_df.equals(expected_out_df)
我还尝试比较了两个具有相同列的空数据帧,这些数据帧和预期的一样好,所以我不明白为什么
out_df
和
预期输出df
被认为是不同的:
expected_columns = ['Col1', 'Col2', 'Col3']
eg_df1 = pd.DataFrame(columns = expected_columns)
eg_df2 = pd.DataFrame(columns = expected_columns)
assert eg_df1.equals(eg_df2)
有人能解释一下吗?
谢谢!