python float转string_python – 将包含NaN值的整个Pandas数据帧从string转换为float

我想将pandas数据帧中的所有值从字符串转换为浮点数.我的数据帧包含各种NaN值(例如NaN,NA,None).例如,

import pandas as pd

import numpy as np

my_data = np.array([[0.5,0.2,0.1],["NA",0.45,0.2],[0.9,0.02,"N/A"]])

df = pd.DataFrame(my_data,dtype=str)

我找到了here和here(以及其他地方)convert_objects可能是要走的路.但是,我收到一条消息,它已被弃用(我使用的是Pandas 0.17.1),而应使用to_numeric.

df2 = df.convert_objects(convert_numeric=True)

输出:

FutureWarning: convert_objects is deprecated. Use the data-type specific converters pd.to_datetime,pd.to_timedelta and pd.to_numeric.

但to_numeric似乎并没有实际转换字符串.

df3 = pd.to_numeric(df,errors='force')

输出:

df2:

0 1 2

0 0.5 0.20 0.1

1 NaN 0.45 0.2

2 0.9 0.02 NaN

df2 dtypes:

0 float64

1 float64

2 float64

dtype: object

df3:

0 1 2

0 0.5 0.2 0.1

1 NA 0.45 0.2

2 0.9 0.02 N/A

df3 dtypes:

0 object

1 object

2 object

dtype: object

我应该使用convert_objects并处理警告消息,还是有正确的方法来执行我想要的to_numeric?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值