gpt4 book ai didi

python - Python将对象转换为 float

转载 作者:行者123 更新时间:2023-12-03 19:09:35 26 4
gpt4 key购买 nike

我从csv文件中读取了一些天气数据,将其作为一个名为“天气”的数据框。问题在于列的数据类型之一是对象。这很奇怪,因为它表明温度...无论如何,如何将其更改为浮点型?我尝试了to_numeric,但它无法解析。

weather.info()
weather.head()

<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 304 entries, 2017-01-01 to 2017-10-31
Data columns (total 2 columns):
Temp 304 non-null object
Rain 304 non-null float64
dtypes: float64(1), object(1)
memory usage: 17.1+ KB

Temp Rain
Date
2017-01-01 12.4 0.0
2017-02-01 11 0.6
2017-03-01 10.4 0.6
2017-04-01 10.9 0.2
2017-05-01 13.2 0.0

最佳答案

您可以使用pandas.Series.astype
您可以执行以下操作:

weather["Temp"] = weather.Temp.astype(float)

您还可以使用 pd.to_numeric将列从对象转换为浮点
有关如何使用它的详细信息,请查看此链接: http://pandas.pydata.org/pandas-docs/version/0.20/generated/pandas.to_numeric.html
范例:

s = pd.Series(['apple', '1.0', '2', -3])
print(pd.to_numeric(s, errors='ignore'))
print("=========================")
print(pd.to_numeric(s, errors='coerce'))

输出:

0    apple
1 1.0
2 2
3 -3
=========================
dtype: object
0 NaN
1 1.0
2 2.0
3 -3.0
dtype: float64

在您的情况下,您可以执行以下操作:

weather["Temp"] = pd.to_numeric(weather.Temp, errors='coerce')

另一种选择是使用 convert_objects
例子如下

>> pd.Series([1,2,3,4,'.']).convert_objects(convert_numeric=True)

0 1
1 2
2 3
3 4
4 NaN
dtype: float64

您可以按以下方式使用它:

weather["Temp"] = weather.Temp.convert_objects(convert_numeric=True)

我向您展示了一些示例,因为如果您的任何列中都没有数字,那么它将被转换为 NaN ...,因此在使用它时要小心。

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

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