在 pandas 中保留一列的数据,并仅显示其他列中的所有 NN。



目标:我仍然想显示这个人是谁,这样我就可以显示与他们相关的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)]

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

有人有什么想法吗?

由于您要求Name列保持完整,因此您只需选择除Name之外的其他列并屏蔽它们,然后创建另一个数据帧df2,它将删除所有NaN值。之后,您可以将df2中的索引从df中删除,并按如下方式为您提供仅具有NaN值的行。

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

这将为您提供以下输出。

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

用空字符串屏蔽(替换条件为true的值(任何不为null的地方。

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

这在多个维度上操作,传递问题"1"的2D真/假答案集;是否更换&";。如果是真的,它会将内容发送到/dev/null,而如果不是真的,则允许它们保持不稳定。

最新更新