pandas中apply的一个问题
以下语句,目的是求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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论