gpt4 book ai didi

Python - 如何从对象转换为 float

转载 作者:行者123 更新时间:2023-12-04 10:41:25 26 4
gpt4 key购买 nike

我有一个包含 2 列的 XLSX 文件,即 monthsrevenue并将其保存为 CSV 文件。通过使用 Pandas 读取我的 csv 文件,revenue列现在变成了对象。如何将此列更改为 float ?

data = pd.DataFrame

dat['revenue']

7980.79
Nan
1000.25
17800.85
.....
Nan
2457.85
6789.33

这是我想更改的列,但它给了我不同的错误

我试过了, astype , to_numeric但没有成功。

我得到的一些错误是:

Cannot parse a string '798.79'

最佳答案

现在使用 nucsit026 的答案来创建一个稍微不同的带有字符串的数据帧

dic = {'revenue':['7980.79',np.nan,'1000.25','17800.85','None','2457.85','6789.33']}
print(df)
print(df['revenue'].dtypes

输出:
    revenue
0 7980.79
1 NaN
2 1000.25
3 17800.85
4 None
5 2457.85
6 6789.33

dtype('O')

尝试这个:
df['revenue']=pd.to_numeric(data['revenue'], errors='coerce').fillna(0, downcast='infer')


它将取代 nan带 0

输出:
0     7980.79
1 0.00
2 1000.25
3 17800.85
4 0.00
5 2457.85
6 6789.33
Name: revenue, dtype: float64

编辑 :

如果引号是您可以使用的问题,则来自您的共享错误
df['revenue']=df['revenue'].str.strip("'")

然后尝试使用上述代码转换为浮点数

编辑2

OP 在列值中有一些空格,如下所示
Month  Revenue
Apr-13 16 004 258.24
May-13
Jun-13 16 469 157.71
Jul-13 19 054 861.01
Aug-13 20 021 803.71
Sep-13 21 285 537.45
Oct-13 22 193 453.80
Nov-13 21 862 298.20
Dec-13 10 053 557.64
Jan-14 17 358 063.34
Feb-14 19 469 161.04
Mar-14 22 567 078.21
Apr-14 20 401 188.64

在这种情况下,请使用以下代码:
df['revenue']=df['revenue'].replace(' ', '', regex=True)

然后执行转换

关于Python - 如何从对象转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59909041/

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