python – 大于小于Pandas DataFramesSeries之间的比较

python – 大于小于Pandas DataFramesSeries之间的比较,第1张

概述如何在DataFrame和Series之间进行比较?我想掩盖DataFrame / Series中比其他DataFrame / Series中的元素更大/更小的元素. 例如,以下内容不会替换大于均值的元素 与nans虽然我期待它: >>> x = pd.DataFrame(data={'a': [1, 2], 'b': [3, 4]})>>> x[x > x.mean(axis=1)] = np 如何在DataFrame和SerIEs之间进行比较?我想掩盖DataFrame / SerIEs中比其他DataFrame / SerIEs中的元素更大/更小的元素.

例如,以下内容不会替换大于均值的元素@H_502_10@与nans虽然我期待它:

>>> x = pd.DataFrame(data={'a': [1,2],'b': [3,4]})>>> x[x > x.mean(axis=1)] = np.nan>>> x   a  b0  1  31  2  4

如果我们看一下比较创建的布尔数组,那真的很奇怪:

>>> x = pd.DataFrame(data={'a': [1,4]})>>> x > x.mean(axis=1)       a      b      0      10  False  False  False  False1  False  False  False  False

我不明白生成的布尔数组是什么逻辑.我可以通过使用转置来解决这个问题:

>>> (x.T > x.mean(axis=1).T).T       a     b0  False  True1  False  True

但我相信有一些“正确”的做法,我不知道.至少我想了解发生了什么.

解决方法 这里的问题是它将索引解释为列值来执行比较,如果你使用.gt并传递axis = 0,那么你得到你想要的结果:

In [203]:x.gt(x.mean(axis=1),axis=0)Out[203]:       a     b0  False  True1  False  True

当您与np数组进行比较时,您可以看到我的意思:

In [205]:x > x.mean(axis=1).valuesOut[205]:       a      b0  False  False1  False   True

在这里,您可以看到用于比较的默认轴在列上,从而产生不同的结果

总结

以上是内存溢出为你收集整理的python – 大于/小于Pandas DataFrames / Series之间的比较全部内容,希望文章能够帮你解决python – 大于/小于Pandas DataFrames / Series之间的比较所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197438.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存