![](/img/trans.png)
[英]How do I remove NaN values from my category type columns? I used .dropna but it doesn't work
[英]How to remove nan values from a dataframe column when notnull, dropna and != 'nan' don't work?
我有一个 dataframe 具有以下列和数据类型:
np_id object
target_id object
activity_type object
activity_value object
activity_units object
assay_cell_type object
SMILES object
standard_inchi_key object
standard_inchi object
target_type object
target_name object
target_organism_tax_id object
target_organism object
uniprot_id object
dtype: object
df.uniprot_id
看起来像这样:
0 [nan]
1 [Q96KQ7]
2 [nan]
3 [P25779]
4 [nan]
...
493830 [nan]
493831 [nan]
493832 [nan]
493833 [nan]
493834 [nan]
并且df['uniprot_id'].isnull().values.any()
给出False
我想删除所有没有 uniprot_id 的行。 我尝试了以下方法:
df.dropna(subset=['uniprot_id'], inplace=True)
df = df[df['uniprot_id'] != 'nan']
df = df[df['uniprot_id'] != 'NaN']
df[df.uniprot_id.notnull()]
为什么我的尝试不起作用? 如何删除 nan 值,以及 dataframe 中的行?
[nan]
被格式化为 nan 的列表。 将其替换为真正的 nan 值,如下所示:
nan_locs = pd.isnull(df['uniprot_id'].apply(lambda x: x[0]))
df['uniprot_id'][nan_locs] = np.nan
然后你的代码应该可以工作。 但是,您可能还想查看只是将每个项目从列表中取出,除非有理由将它们放入列表中:
df['uniprot_id'] = df['uniprot_id'].apply(lambda x: x[0])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.