将一列的数据保留在 Pandas 中,并仅显示其他列中的所有 NAN

问题描述

目标:我仍想显示此人是谁,以便我可以显示与他们关联的 NAN,以便我可以快速找到丢失信息的人。

考虑这个数据集:

df:
Name            Phone            Address
John Doe        NAN               123 lane
Jenny Gump      222-222-2222      NAN
Larry Bean      NAN               561 road
Harry Smidlap   111-111-1111       555 highway

我想清理数据并显示如下内容(类似于过滤空白时的 excel 视图): 然后可能会用“数据存在”的内容填充空数据,或者将其留空。我愿意接受建议。并删除填充了所有数据的行。

df:
Name        Phone            Address
John Doe     NAN               
Jenny Gump                     NAN
Larry Bean    NAN             

我试过了:

df[df.isnull().any(axis=1)]

这很好用,但我有一个大数据源,而且我看到很多已经有数据的不必要的信息。我只关心看到这个人的名字和他们失踪的东西。

有人有什么想法吗?

解决方法

Mask(替换条件为真的值)任何不为空的地方用空字符串。

df.mask(df.notnull(),'') 

这会在多个维度上运行,为“是否替换?”问题传递一组 2D 真/假答案。如果是真的,它会将内容发送到 /dev/null,而如果不是,它允许它们保持不稳定。

,

由于您要求 Name 列完整无缺,您可以选择除 Name 之外的其他列并屏蔽它们,然后创建另一个数据框 df2 以删除所有 {{1} }} 值。之后,您可以从 NaN 中删除 df2 中的索引,您可以为您提供仅包含 df 值的行,如下所示。

NaN

这应该给你以下输出。

df.mask((df.columns != 'Name') & (df.notnull()),"",inplace=True)
df2 = df.dropna()
df.drop(df2.index,inplace=True)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...