【问题标题】:Replace integers with np.NaN in cudf dataframe在 cudf 数据框中用 np.NaN 替换整数
【发布时间】:2022-08-06 17:33:37
【问题描述】:

我有一个这样的数据框

df_a = cudf.DataFrame()
df_a[\'key\'] = [0, 1, 2, 3, 4]
df_a[\'values\'] = [1,2,np.nan,3,np.nan]

我想用 np.nan 替换所有 2s

通常在我会使用的熊猫数据框中 df_a[df_a==2]=np.nan

但在 cudf 数据框中我得到无法广播 <class \'int\'>

当我使用 df_a[df_a[\'values\']==2] =np.nan我无法理解结果

使用 df_a.replace(2, np.NaN)

给我无法将浮点 NaN 转换为整数

原始数据框非常大,所以我想避免循环,它可能包含不同的数据类型,这意味着 \'2\'s 也可能是浮点数

    标签: python pandas dataframe nan cudf


    【解决方案1】:

    我找不到很好的参考,但使用 None 而不是 np.nan 似乎可以解决问题:

    from cudf import DataFrame
    from numpy import nan
    
    df_a = DataFrame()
    df_a['key'] = [0, 1, 2, 3, 4]
    df_a['values'] = [1,2, nan,3,nan]
    print(df_a)
    #    key values
    # 0    0      1
    # 1    1      2
    # 2    2   <NA>
    # 3    3      3
    # 4    4   <NA>
    
    # mask all 2's (in key and value)
    mask = df_a==2
    df_a[mask] = None
    print(df_a)
    #     key values
    # 0     0      1
    # 1     1   <NA>
    # 2  <NA>   <NA>
    # 3     3      3
    # 4     4   <NA>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-25
      • 1970-01-01
      相关资源
      最近更新 更多