gpt4 book ai didi

python | Pandas |对象 |转换为整数或 float

转载 作者:太空宇宙 更新时间:2023-11-04 04:59:44 24 4
gpt4 key购买 nike

概述:

我已经从网站上删除了一些数据,放入了 Pandas DataFrame 中,但出于某种原因,我似乎无法将数据类型从对象转换为整数或 float (就这一点而言,两者都可以).

我浏览了一些帖子,谢天谢地,它们帮助我走到了这里,但出于某种原因,我尝试的一切似乎都不起作用

数据集样本:

Condition_Type  State   Price      Year    Make         Model
In Stock SA $24,654 2017 Mazda 3
Used Car VIC $23,162 2016 Holden Trax
Used Car VIC $15,777 2011 Volkswagen Tiguan
Used Car VIC $12,634 2012 Volkswagen Polo
In Stock VIC $70,501 2017 Volkswagen Amarok

到目前为止我尝试了什么:

df["Price"] = df["Price"].str.replace("$","").astype(int)

ValueError:以 10 为底的 int() 的无效文字:

df["Price"] = df["Price"].astype(str).astype(int)

ValueError:以 10 为底的 int() 的无效文字:

pd.Series(df["Price"]).convert_objects(convert_numeric=True)

future 警告:不推荐使用 convert_objects。使用特定于数据类型的转换器 pd.to_datetime、pd.to_timedelta 和 pd.to_numeric。

pd.to_numeric(df["Price"], errors='coerce')

返回 NaN

pd.to_numeric(df["Price"], errors='ignore')

值保持为对象

df["Price"] = df["Price"].astype(np.int64, inplace=True)

ValueError:以 10 为底的 int() 的无效文字:

最后一个在过去有效,但出于某种原因,它不适用于此数据集。

有什么想法吗?

谢谢,阿德里安

最佳答案

我认为你首先需要转义值 $ 然后用 , 替换为带 Series.replace 的空字符串:

df["Price"] = df["Price"].replace(["\$", ','],"", regex=True).astype(int)
print (df)
Condition_Type State Price Year Make Model
0 In Stock SA 24654 2017 Mazda 3
1 Used Car VIC 23162 2016 Holden Trax
2 Used Car VIC 15777 2011 Volkswagen Tiguan
3 Used Car VIC 12634 2012 Volkswagen Polo
4 In Stock VIC 70501 2017 Volkswagen Amarok

print (df['Price'].dtypes)
int32

关于 python | Pandas |对象 |转换为整数或 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46055635/

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