【问题标题】:Convert dataframe column from int to exponential将数据框列从 int 转换为指数
【发布时间】:2021-12-29 16:24:59
【问题描述】:

将“价格”列转换为指数形式的最佳方法是什么,例如笔记本电脑-->1.0E4?

    import pandas as pd
    data = {'product_name': ['laptop', 'printer', 'tablet', 'desk', 'chair'],
            'price': [10000, 100000, 1000000, 45000, 2000]
            }
    
    df = pd.DataFrame(data)
    df

Output:
  product_name    price
0       laptop    10000
1      printer   100000
2       tablet  1000000
3         desk    45000
4        chair     2000

【问题讨论】:

    标签: python pandas integer exp


    【解决方案1】:

    这只是格式的问题。您可以预先设置默认的浮点格式,然后将您的 int 转换为浮点并打印。

    import pandas as pd
    pd.set_option('display.float_format', '{:.1E}'.format)
    data = {'product_name': ['laptop', 'printer', 'tablet', 'desk', 'chair'],
                'price': [10000, 100000, 1000000, 45000, 2000]
                }
    df = pd.DataFrame(data)
    df['price'] = df['price'].astype(float)
    
    print(df)
    

    输出

      product_name   price
    0       laptop 1.0E+04
    1      printer 1.0E+05
    2       tablet 1.0E+06
    3         desk 4.5E+04
    4        chair 2.0E+03
    

    【讨论】:

    • 当我绘制数据时,数字不会以图例中的指数形式显示。这是真正的问题。
    【解决方案2】:

    我在Geeks for Geeks 上找到了这个 并把它做成这样的函数

    def int2exp(n: int):
        return "{:e}".format(n)
    

    【讨论】:

      猜你喜欢
      • 2013-07-30
      • 2018-03-29
      • 2019-05-07
      • 2023-03-04
      • 1970-01-01
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多