在具有值范围的数字中,如何将小数点向左移动,直到Python中保留一位整数

在具有值范围的数字中,如何将小数点向左移动,直到Python中保留一位整数,python,python-3.x,pandas,rounding,Python,Python 3.x,Pandas,Rounding,我想取一个像:12345678这样的数字,然后把它转换成1.2345678,只留下一个一位数的整数和任何小数点 将12345678乘以0.0000001适用于上述示例,但如果数字为1234则不适用。数字会发生变化,因此静态乘数将无法工作 有没有一种方法可以帮助你?如果可以在一个数据帧内完成,则会得到奖励 您可以使用np.log10和astype(int)查找正确的电源: df['number'] /= 10**(np.log10(df['number']).astype(int)) 输出:

我想取一个像:12345678这样的数字,然后把它转换成1.2345678,只留下一个一位数的整数和任何小数点

将12345678乘以0.0000001适用于上述示例,但如果数字为1234则不适用。数字会发生变化,因此静态乘数将无法工作


有没有一种方法可以帮助你?如果可以在一个数据帧内完成,则会得到奖励

您可以使用
np.log10
astype(int)
查找正确的电源:

df['number'] /= 10**(np.log10(df['number']).astype(int))
输出:

     number
0  1.234568
1  1.234000

以下面的dataframe为例:

In [1192]: df 
Out[1192]: 
          a
0  12345678
1      1234
您可以使用Python的基本功能:


我有两种想法

A= Str (xxxxxxx)

B = float (A[0]+”.”+A[1:len(A)])
另一种方式:

A=A / pow(10,len(str(A)-1)
A=A / pow(10,len(str(A)-1)