我有一个函数来比较两个数据帧,如果相等则返回True
,如果列名和观察值不相等则返回False
。你知道吗
def table_equal(A, B):
var_names = sorted(A.columns)
Y = A[var_names].copy()
Y.sort_values(by=var_names, inplace=True)
Y.set_index([list(range(0,len(Y)))], inplace=True)
var_names2 = sorted(B.columns)
Z = B[var_names2].copy()
Z.sort_values(by=var_names, inplace=True)
Z.set_index([list(range(0,len(Y)))], inplace=True)
if Y.equals(Z):
return True
else:
return False
假设我有一个原始表(A),我想将其他表与之进行比较。你知道吗
a b c
x 1 hat
y 2 cat
z 3 bat
w 4 rat
我的函数几乎适用于表B的所有排列,但下表除外,下表给出的是True
,而不是False
:
a c b
x 1 hat
y 2 cat
z 3 bat
w 4 rat
我的代码有什么改动吗?你知道吗
后续问题:
我希望下面的两个表是真的,在同一个变量中有相同的观测值。你知道吗
a b c
0 x 1 hat
1 y 2 cat
2 z 3 bat
3 w 4 rat
c b a
6 rat 4 w
3 hat 1 x
1 bat 3 z
9 cat 2 y
从piRSquared的解决方案来看,代码是有效的,但是只要观察值相同,我怎么能忽略每个表中的行完全相同呢?你知道吗
问题
显然:
解决方案}
使用^{
重写函数。。。你知道吗
解释
align
将返回两个列和索引相同的数据帧。你知道吗因为索引是对齐的,所以我们可以比较
values
属性,看看它们是否都相同。在这种情况下,他们不是。你知道吗相关问题 更多 >
编程相关推荐