更好的方法来放弃熊猫中的纳米行

kil*_*les 41 python pandas

我自己找到了一种从熊猫数据帧中删除nan行的方法.给定一个包含nan值的dat列的数据框x,是否有一种更优雅的方法来删除列中的每个行dat都有一个nan值x

dat = dat[np.logical_not(np.isnan(dat.x))]
dat = dat.reset_index(drop=True)
Run Code Online (Sandbox Code Playgroud)

Ter*_*aft 100

使用dropna:

dat.dropna()
Run Code Online (Sandbox Code Playgroud)

how如果所有标签都是nan或者任何标签是nan,则可以将param传递给drop

dat.dropna(how='any')    #to drop if any value in the row has a nan
dat.dropna(how='all')    #to drop if all values in the row are nan
Run Code Online (Sandbox Code Playgroud)

希望这能回答你的问题!

编辑1: 如果您想要删除nan仅包含特定列的值的行,如J. Doe在下面的答案中所建议的那样,您可以使用以下内容:

dat.dropna(subset=[col_list])  # col_list is a list of column names to consider for nan values.
Run Code Online (Sandbox Code Playgroud)


J. *_*Doe 25

要扩展Hitesh的答案,如果你想删除'x'特别是nan的行,你可以使用subset参数.他的答案会在其他列也没有的情况下放下行

dat.dropna(subset=['x'])
Run Code Online (Sandbox Code Playgroud)


小智 9

如果先前答案中的命令不起作用,请尝试以下操作: dat.dropna(subset=['x'], inplace = True)