gpt4 book ai didi

python - 在 Python pandas 中有选择地将 float 转换为整数和小数

转载 作者:行者123 更新时间:2023-11-28 22:24:58 24 4
gpt4 key购买 nike

我正在从多个 csv 中读取数据,应用一些过滤器并将它们合并到一个数据框中。 csv 中的原始数据只是数字/分数。 Pandas 正在将它们转换为 float 。没关系,但我只需要 1 列就可以保持原样。要将其转换回整数,我尝试了:

df['PRICE']=df['PRICE'].astype(int)

这对整数非常有效。但是,这也将所有小数转换为整数。意思是,甚至

1162.50 --> 1162

我希望将其更改为:

1152.0  --> 1152
1216.50 --> 1216.5
1226.65 --> 1226.65

提前致谢

最佳答案

您可以使用 pd.DataFrame 构造函数和 dtype=object 重新初始化数据框:

print(df)

Col1
0 1152.00
1 1216.50
2 1226.65

df = pd.DataFrame(df, dtype=object)
print(df)

Col1
0 1152
1 1216.5
2 1226.65

或者,如果它只是您要转换的一列,您可以以相同的方式使用 pd.Series 构造函数:

df.Col1 = pd.Series(df.Col1, dtype=object)
print(df)

Col1
0 1152
1 1216.5
2 1226.65

法定警告:在数据框中混合类型会破坏 pandas/numpy 为纯数字类型提供的所有优化和加速优势。


上面的方法概述了保留数字属性的方法,但是如果要保存为CSV,则必须转换为字符串并截断,否则保存时它们会被强制转换为 float 。您可以这样做:

out = df.astype(str).replace('\.0+$', '', regex=True)
print(out)

Col1
0 1152
1 1216.5
2 1226.65

out.to_csv('out.csv')

关于python - 在 Python pandas 中有选择地将 float 转换为整数和小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45902991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com