【问题标题】:pandas convert object to decimal(3,9)熊猫将对象转换为十进制(3,9)
【发布时间】:2022-06-22 20:59:51
【问题描述】:

我有一个数据框,其中的列填充了一个 dtype: 对象。这些值是从 asci 文件中检索的(位置 x + 长度 y)。

0       001191833837
1       001083340239
2       000716901420
3       001191833837
4       001191833837
            ...     
4162    001160715789
4163    001160715789
4164    001160715789
4165    000875149515
4166    001160715789
Name: WEGING, Length: 4167, dtype: object

这些值应该被解释为一个小数点后 9 位的数字(如 decimal(3,9))。如何将 dtype 对象转换为所需的结果?

0       001.191833837
1       001.083340239
2       000.716901420
3       001.191833837
4       001.191833837
            ...     
4162    001.160715789
4163    001.160715789
4164    001.160715789
4165    000.875149515
4166    001.160715789

TIA。

【问题讨论】:

    标签: python pandas type-conversion


    【解决方案1】:

    如果你想要一个浮动,使用:

    df['WEGING2'] = pd.to_numeric(df['WEGING']).div(10**9)
    

    对于字符串:

    df['WEGING3'] = df['WEGING'].str.replace(r'^(.{3})', r'\1.', regex=True)
    

    输出:

             WEGING   WEGING2        WEGING3
    0  001191833837  1.191834  001.191833837
    1  001083340239  1.083340  001.083340239
    2  000716901420  0.716901  000.716901420
    3  001191833837  1.191834  001.191833837
    4  001191833837  1.191834  001.191833837
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-05
      • 2011-10-14
      • 2012-11-14
      • 1970-01-01
      • 1970-01-01
      • 2017-07-09
      • 2021-12-01
      • 2023-02-06
      相关资源
      最近更新 更多