我在Maxcompute使用的Mars进行数据分析 df['point'] = df['point'].map(lambda x: int(x[1:]))报错如下:
Traceback (most recent call last): File "<pyodps_user_code>", line 383, in <module> main_ktfh("19:30-20:30") File "<pyodps_user_code>", line 362, in main_ktfh sea_df = fun_season_change(s_point, e_point) File "<pyodps_user_code>", line 327, in fun_season_change a_df = fun_melt(fdf) File "<pyodps_user_code>", line 254, in fun_melt df['point'] = df['point'].map(lambda x: int(x[1:])) File "/opt/taobao/tbdpapp/pyodps/mars/0.6/mars/dataframe/base/map.py", line 253, in series_map return op(series, dtype=dtype) File "/opt/taobao/tbdpapp/pyodps/mars/0.6/mars/utils.py", line 456, in _inner return func(*args, **kwargs) File "/opt/taobao/tbdpapp/pyodps/mars/0.6/mars/dataframe/base/map.py", line 104, in __call__ raise ValueError('cannot infer dtype, ' ValueError: cannot infer dtype, it needs to be specified manually for `map`
Mars中如何实现Pandas中map、apply方法,是否能提供相关文档
这个错误是因为Mars无法自动推断数据类型,需要手动指定数据类型。可以在lambda函数中添加一个参数,指定返回的数据类型,例如: df['point'] = df['point'].map(lambda x: int(x[1:]), dtype='int64') 这样就可以将字符串转换为整数类型。注意,需要根据实际情况指定正确的数据类型。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。