百分比格式不会更改为浮动熊猫



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

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

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。因此,当我将数据帧保存到excel文件中时,值将粘贴为文本,而不是数字。此外,在从这个数据帧创建折线图时,我得到了一个错误"不可处理类型:"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)

希望能奏效!

最新更新