加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 将pandas dataframe中的列从String转换为Float

发布时间:2020-12-16 21:59:15 所属栏目:Python 来源:网络整理
导读:我已经阅读了各种解决方案,并尝试了此处所述的解决方案:Pandas: Converting to numeric,creating NaNs when necessary 但它并没有真正解决我的问题: 我有一个数据框包含多个列,其中列[PricePerSeat_Outdoor]包含一些浮点值,一些空值和一些 print type(df_r

我已经阅读了各种解决方案,并尝试了此处所述的解决方案:Pandas: Converting to numeric,creating NaNs when necessary

但它并没有真正解决我的问题:
我有一个数据框包含多个列,其中列[‘PricePerSeat_Outdoor’]包含一些浮点值,一些空值和一些’ – ‘

    print type(df_raw['PricePerSeat_Outdoor'][99])
    print df_raw['PricePerSeat_Outdoor'][95:101]
    df_raw['PricePerSeat_Outdoor'] = df_raw['PricePerSeat_Outdoor'].apply(pd.to_numeric,errors='coerce')
    print type(df_raw['PricePerSeat_Outdoor'][99]) 

然后我得到了:

第98行和第99行的值未转换.同样,我已经尝试过多种方法,包括以下但是它没有用.非常感谢,如果有人能给我一些提示.

df_raw [‘PricePerSeat_Outdoor’] = df_raw [‘PricePerSeat_Outdoor’].apply(pd.to_numeric,errors =’coerce’)

另外,如何将多个列一次转换为数字?谢谢.

最佳答案
试试这个:

df_raw['PricePerSeat_Outdoor'] = pd.to_numeric(df_raw['PricePerSeat_Outdoor'],errors='coerce')

这是一个例子:

In [97]: a = pd.Series(['17.21','17.34','15.23','-','','12.34']

In [98]: b = pd.Series(['0.21','0.34','0.23','0.34'])

In [99]: df = pd.DataFrame({'a':a,'b':b})

In [100]: df['c'] = np.random.choice(['a','b','b'],len(df))

In [101]: df
Out[101]:
       a     b  c
0  17.21  0.21  a
1  17.34  0.34  b
2  15.23  0.23  b
3      -     -  b
4      -        b
5            -  b
6  12.34  0.34  b

In [102]: cols_to_convert = ['a','b']

In [103]: cols_to_convert
Out[103]: ['a','b']

In [104]: for col in cols_to_convert:
   .....:         df[col] = pd.to_numeric(df[col],errors='coerce')
   .....:

In [105]: df
Out[105]:
       a     b  c
0  17.21  0.21  a
1  17.34  0.34  b
2  15.23  0.23  b
3    NaN   NaN  b
4    NaN   NaN  b
5    NaN   NaN  b
6  12.34  0.34  b

校验:

In [106]: df.dtypes
Out[106]:
a    float64
b    float64
c     object
dtype: object

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读