开发者社区 > 大数据与机器学习 > 大数据计算 MaxCompute > 正文

使用pyodps->df读取的decimal会自带百分号

使用pyodps->df读取的decimal会自带百分号;读取的datetime是数值类型,这个应该怎么解决呢?必须format吗?

展开
收起
离原 2023-03-04 22:46:12 830 0
4 条回答
写回答
取消 提交回答
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    使用 CAST 函数将 Decimal 类型数据转换为字符串类型,如下所示:

    SELECT CAST(decimal_col AS STRING) AS decimal_col_str FROM your_table;
    

    这样就可以避免自动添加百分号的问题了。

    对于 datetime 数据类型,可以通过在使用 TO_STRING 函数将其转换为字符串类型,并指定格式化字符串。

    SELECT TO_STRING(datetime_col, 'YYYY-MM-DD HH24:MI:SS') AS datetime_col_str FROM your_table;
    
    
    2023-03-25 20:22:27
    赞同 展开评论 打赏
  • 您可以使用pandas库中的to_numeric()函数将decimal类型转换为float类型,并使用strftime()函数将datetime类型转换为字符串类型。例如,您可以使用以下代码:

    import pandas as pd from odps import options, ODPS

    options.sql.use_odps2_extension = True o = ODPS('your_access_id', 'your_secret_access_key', 'your_project_name', 'your_endpoint')

    读取数据

    df = o.get_table('your_table_name').to_df()

    将decimal类型转换为float类型

    df['your_decimal_column_name'] = pd.to_numeric(df['your_decimal_column_name'].str.strip('%')) / 100

    将datetime类型转换为字符串类型

    df['your_datetime_column_name'] = df['your_datetime_column_name'].dt.strftime('%Y-%m-%d %H:%M:%S')

    输出结果

    print(df.head())

    2023-03-06 08:58:08
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    datetime 是被定义为数据类型(Data Types)。由此可见,datetime 是主要提供处理日期和时间的数据类型的模块

    2023-03-05 21:03:40
    赞同 展开评论 打赏
  • 可以按照我的方法尝试一下: 主要是来说分两种decimal自带百分号和datetime是数值类型。。。 decimal自带百分号:使用to_decimal()方法将其转化为decimal类型,并使用astype()方法将其转换为所需的数据类型,例如:

    import pandas as pd
    from odps.df import DataFrame
    
    df = DataFrame(c)
    df['column_name'] = df['column_name'].to_decimal().astype(float)
    
    

    这里将column_name列中的数据先转化为decimal类型,再转换为float类型。

    datetime是数值类型:使用pd.to_datetime()方法将其转化为datetime类型,并使用strftime()方法将其转换为所需的字符串格式,例如:

    
    df['column_name'] = pd.to_datetime(df['column_name'], unit='s').dt.strftime('%Y-%m-%d %H:%M:%S')
    

    这里将column_name列中的数据先转化为datetime类型,再按照指定格式进行字符串格式化。

    2023-03-04 22:55:40
    赞同 展开评论 打赏

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

热门讨论

热门文章

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载