python-3.x 将Na或Null值移动到新的 Dataframe

1bqhqjot  于 2022-11-19  发布在  Python
关注(0)|答案(2)|浏览(131)

我知道我可以用df.dropna()从DataFrame中删除NaN行。但是如果我想将这些NaN行移动到新的DataFrame中,该怎么办?

FNAME, LNAME, ADDRESS, latitude, logitude, altitude
BOB, JONES, 555 Seaseme Street, 38.00,-91.00,0.0
JOHN, GREEN, 111 Maple Street, 34.00,-75.00,0.0
TOM, SMITH, 100 A Street, 20.00,-80.00,0.0
BETTY, CROCKER, 5 Elm Street, NaN,NaN,NaN

我知道我可以像这样分组并移动到新的DataFrame

grouped = df.groupby(df.FNAME)
df1 = grouped.get_group("BOB")

它会给予我一个新的DataFrame,其中包含FNAME的BOB,但当我尝试

grouped = df.groupby(df.altitude)
df1 = grouped.get_group("NaN")

我得到了一个KeyError: 'NaN'。那么我如何按Nan或Null值分组呢?

qncylg1j

qncylg1j1#

假设您对列中的所有'Nan'值都要分组到一起感到满意,那么您可以使用DataFrame.fillna()'Nan'转换为其他值,以便进行分组。

df.fillna(value={'altitude':'null_altitudes'}

这将使用字符串'null_altitudes'填充altitude列中的每个空值。如果现在执行groupby,则所有'null_altitudes'将在一起。可以使用多个键值对一次填充多个列:values = {'col_1':'val_1', 'col_2':'val_2', etc}

jdgnovmf

jdgnovmf2#

您可以将isna与行上的any一起使用:

# to get rows with NA in a new df
df1 = df[df.isna().any(axis=1)]

相关问题