pandas中apply的一个问题

发布于 2022-09-12 13:04:10 字数 656 浏览 46 评论 0

以下语句,目的是求data中每一行的数据是否完全一样,
tag = data.apply(lambda x: (x == np.mean(x)).all(), axis=1)
当数据量在15万以下时,没有什么问题
但当跑到20万数据时,
报type error错:
TypeError: can only concatenate str (not "int") to str
当然,数据我保证都是 INT
而且,以下语句
print(sub_data.isna().any().any())
输出为 False
这是为什么呢?

而语句
tag = (data.T.mean() == data.T).all()
表现无异常

原因找到了:是数据中存在str
df.mean() 操作时,存在类型为object的数据不会输出,所以,某列数据为object时,df.T之后再做mean操作,返回的时空series,尽管语句
(data.T.mean() == data.T).all()
没有报错,但其返回值都为False

语句tag = data.apply(lambda x: (x == np.mean(x)).all(), axis=1)
报错,就好理解了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文