我知道我可以使用 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
我知道我可以分组并移动到这样的新数据框
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 值进行分组?
最佳答案
假设您满意将列中的所有 'Nan'
值分组在一起,您可以使用 DataFrame.fillna()
进行转换将 'Nan'
转换为其他内容,进行分组。
df.fillna(value={'altitude':'null_altitudes'}
这会使用字符串'null_altitudes'
填充altitude
列中的每个空值。如果您现在进行分组,则所有 'null_altitudes'
将聚集在一起。您可以使用多个键值对一次填充多列:values = {'col_1':'val_1', 'col_2':'val_2', etc}
关于python-3.x - Python Pandas 将 Na 或 Null 值移动到新的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63742247/