小编Lev*_*Lev的帖子

将包含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)
Run Code Online (Sandbox Code Playgroud)

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

df2 = df.convert_objects(convert_numeric=True)
Run Code Online (Sandbox Code Playgroud)

输出:

FutureWarning: convert_objects is deprecated.  Use the data-type specific converters pd.to_datetime, pd.to_timedelta and pd.to_numeric.
Run Code Online (Sandbox Code Playgroud)

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

df3 = pd.to_numeric(df, errors='force')
Run Code Online (Sandbox Code Playgroud)

输出:

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: …
Run Code Online (Sandbox Code Playgroud)

python nan pandas

5
推荐指数
1
解决办法
993
查看次数

标签 统计

nan ×1

pandas ×1

python ×1