请考虑以下代码段:
a = pd.DataFrame([[None]])
b = pd.DataFrame([[None]])
现在,我想确认它们都包含完全相同的值:
int((a == b).sum()) # should be 1
但它不是1.相反,它返回0.这种行为给我带来麻烦,特别是在assert_frame_equal
报告None
不是None
的情况下,即使它们是:{/ p>
a.iloc[0,0] == b.iloc[0,0] # True
为什么会这样,我该如何解决这个问题?
答案 0 :(得分:1)
pandas是特殊的套管NaN
,因此被解释为NaN != NaN
(因为pd.isnull
,np.array_equal
一致地对待......这可能是一种解释)。
不是解决方案,而是变通方法 - None
,如果他们是NaN
而不是>>> np.array_equal(a, b)
True
,则可以使用;
np.equal
如果您想要计数而不是bool结果,请使用>>> np.equal(a, b).sum().item()
1
;
try {
Runtime rt = Runtime.getRuntime();
String command = "keytool " +
"-genkey -alias blabla -keyalg RSA " +
"-keystore ecekeystore.jks " +
"-dname \"CN=MyName, OU=blabla, O=blabla, L=blabla, S=blabla, C=US\" " +
"-storepass password1 " +
"-keypass password2";
System.out.println(command);
Process pr = rt.exec(command);
return true;
} catch (IOException e) {
e.printStackTrace();
}