pandas 如何Mappanda._libs.missing.NAType类型的NA值

roejwanj  于 2022-12-21  发布在  其他
关注(0)|答案(1)|浏览(175)

在我工作流程的某个地方,Pandas DataFrame中的NaN值(使用np.Nan填充)变成了<NA>值。(我仍在尝试找出这是如何发生的。可能是从CSV重新导入数据集造成的?)pandas.DataFrame.dropna工作正常。但是pandas.DataFrame.isna仅Map
NA值,如None或numpy.NaN [...]其他所有内容都Map到False值。
有没有办法Mappandas._libs.missing.NAType类型的NA值?

虚构样品

In [1]: import numpy as np
        import pandas as pd

        dictionary = {'environment': ['test', 'prod', 'test', 'prod'], 
                      'event': ['add_rd', 'add_rd', 'add_env', 'add_env'], 
                      'entry': ['yes', np.NaN, 'no', np.NaN]
                     }

        df = pd.DataFrame(dictionary, columns= ['environment', 'event', 'entry'])

(将NaN值转换为pandas._libs.missing.NAType类型的<NA>值时发生了一些事情)

In [3]: print(df)

          environment    event entry
        0        test   add_rd   yes
        1        prod   add_rd   <NA>
        2        test  add_env    no
        3        prod  add_env   <NA>

预期产出:

In [4]: df["entry"].isna()

Out[4]  0    False
        1     True
        2    False
        3     True
        Name: entry, dtype: bool
k3fezbri

k3fezbri1#

如果您是Pandas更新了,您可以试试pd.NA:

df["isna"] = df["entry"].apply(lambda x:True if x is pd.NA else False)

相关问题