【问题标题】:NA and NaN in Pandas column: PythonPandas 专栏中的 NA 和 NaN:Python
【发布时间】:2017-03-27 15:46:54
【问题描述】:

我有一个 Pandas 列,其中包含 NA、NaN 和浮点数(列的 dtype 是“对象”)。我正在努力将 NA 转换为 NaN。我想用 NaN 替换 NA,然后将列 dtype 更改为 float。

我尝试过使用各种方法来替换 NA。例如:

df.data.astype('float', inplace=True)
ValueError: could not convert string to float: NA

df.data[df.data == 'NA'] 
Series([], Name: data, dtype: object)  # empty

我还尝试在读取 csv 时使用 na_values='NA' 参数。希望你能帮忙。谢谢。

【问题讨论】:

    标签: python csv pandas nan na


    【解决方案1】:

    这行得通:

    df.data = pd.to_numeric(df.data, errors='coerce')
    

    【讨论】:

      【解决方案2】:

      你可以试试这个:

      import pandas as pd
      import numpy as np
      
      df = pd.DataFrame([1, 2, 3, 4, 5, 'NA', 6, 7, 'NaN', 'Stuff'], columns=['Col1'])
      
      rem_fields = (r'[^.0-9]')
      
      rep_with = (np.nan)
      
      df['Col1'].replace(regex=True, inplace=True, to_replace=rem_fields, value= rep_with)
      
      print df
      

      'rem_fields' 告诉 pandas 替换任何不是数字或 '.' 的东西与 NaN

      这是输出:

         Col1
      0   1.0
      1   2.0
      2   3.0
      3   4.0
      4   5.0
      5   NaN
      6   6.0
      7   7.0
      8   NaN
      9   NaN
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-29
        • 1970-01-01
        • 1970-01-01
        • 2022-11-19
        • 1970-01-01
        • 2018-11-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多