Python 百分比格式不会更改为浮点-大熊猫

Python 百分比格式不会更改为浮点-大熊猫,python,pandas,floating-point,percentage,Python,Pandas,Floating Point,Percentage,我在将数据转换为fro数据帧到百分比格式并将其保持为浮点时遇到问题 我准备了一个简单的代码,它反映了我实际项目的代码: import numpy as np import pandas as pd df = pd.DataFrame(np.random.randint(0,15,size=(10, 4)), columns=list('ABCD')) print(df) cols = df.columns for col in cols: df[col] = df[col].asty

我在将数据转换为fro数据帧到百分比格式并将其保持为浮点时遇到问题

我准备了一个简单的代码,它反映了我实际项目的代码:

import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.randint(0,15,size=(10, 4)), columns=list('ABCD'))
print(df)

cols = df.columns
for col in cols:
    df[col] = df[col].astype(float).map(lambda n: '{:.4%}'.format(n))
print(df)
print(df.dtypes)
在我的实际项目中,我只需要选择包含特定字符串的列,并对它们的值进行一些计算。最后,我必须将格式更改为小数点后4位的百分比。即使我使用
astype(float)
我的值仍然是
str
。 因此,当我将dataframe保存到excel文件时,值被粘贴为文本而不是数字。 此外,在从这个数据帧创建折线图时,我得到一个错误“unhabable type:'numpy.ndarray”

请建议如何成功地将数据转换为百分比格式,并将其保持为浮点数,以便在excel文件中准确粘贴,并使用matplotlib创建折线图


非常感谢

我相信这是因为您使用的是.astype(float)之后的.format。代码首先将值转换为float,但由于format是str函数,它将转换为带4位小数的字符串。您可以尝试执行以下操作:

df[col] = df[col].map(lambda n: '{:.4%}'.format(n)).astype(float)

您可以尝试在for循环中将代码行分成两部分:

df[col] = df[col].map(lambda n: '{:.4%}'.format(n))
df[col] = df[col].astype(float)

希望能成功

不幸的是,我以前尝试过这个选项,但收到错误:“无法将字符串转换为浮点”