首页 > 解决方案 > DataFrame 使用“astype”更改 DataType

问题描述

我遇到了以下问题:

我有一个数据框,我想将小数设置为固定宽度,如果我使用“apply{}”更改“列样式”,它会完美运行,但是如果我将此数据框导出为 *.txt,我会变成其他程序出错,我想在其中导入此数据集。如果我通过 *.astype(float) 进行更改,则程序能够导入数据集,但制表符和每个值的大小都会出现问题。

在此处输入图像描述

有没有办法使用 *.astype() 将每个值设置为固定大小?

例如,列“F [HZ]”应如下所示:30.00、10.78、10.90

感谢帮助!

标签: pythonpandasdataframe

解决方案


我猜您正在使用 pd.to_csv 将其保存为文本文件。在这种情况下,您可以按如下方式使用它来保存具有固定宽度的浮动数字:

df = pd.DataFrame({'F[HZ]': [30, 10.78, 10.9025], 'T[C]':[-50, -50, -50]})
df.to_csv('outfile.txt', float_format='%.2f')

此外,您还可以导入其他文件并使用 astype 将其四舍五入到小数点后两位,代码如下:

df['F[HZ]'] = df['F[HZ]'].astype(float).round(2)

如果您不希望 T[C] 为浮点数,则可以将其设置为整数类型,如下所示:

df['T[C]'] = df['T[C]'].astype(int)

要显示不同列的数据类型,您可以使用以下打印语句:

print(df.info())

推荐阅读