给定一个包含可能分散在各处的NaN值的pandas数据frame:
问题:如何确定哪些列包含NaN值?特别是,我可以获得包含NANS的列名列表吗?
更新:使用Pandas 0.22.0
较新的Pandas版本有新方法'dataframe.isna()'和'dataframe.notna()'
In [71]: df
Out[71]:
a b c
0 NaN 7.0 0
1 0.0 NaN 4
2 2.0 NaN 4
3 1.0 7.0 0
4 1.0 3.0 9
5 7.0 4.0 9
6 2.0 6.0 9
7 9.0 6.0 4
8 3.0 0.0 9
9 9.0 0.0 1
In [72]: df.isna().any()
Out[72]:
a True
b True
c False
dtype: bool
作为列的列表:
In [74]: df.columns[df.isna().any()].tolist()
Out[74]: ['a', 'b']
In [73]: df.loc[:, df.isna().any()]
Out[73]:
a b
0 NaN 7.0
1 0.0 NaN
2 2.0 NaN
3 1.0 7.0
4 1.0 3.0
5 7.0 4.0
6 2.0 6.0
7 9.0 6.0
8 3.0 0.0
9 9.0 0.0
In [97]: df
Out[97]:
a b c
0 NaN 7.0 0
1 0.0 NaN 4
2 2.0 NaN 4
3 1.0 7.0 0
4 1.0 3.0 9
5 7.0 4.0 9
6 2.0 6.0 9
7 9.0 6.0 4
8 3.0 0.0 9
9 9.0 0.0 1
In [98]: pd.isnull(df).sum() > 0
Out[98]:
a True
b True
c False
dtype: bool
In [5]: df.isnull().any()
Out[5]:
a True
b True
c False
dtype: bool
In [7]: df.columns[df.isnull().any()].tolist()
Out[7]: ['a', 'b']
In [31]: df.loc[:, df.isnull().any()]
Out[31]:
a b
0 NaN 7.0
1 0.0 NaN
2 2.0 NaN
3 1.0 7.0
4 1.0 3.0
5 7.0 4.0
6 2.0 6.0
7 9.0 6.0
8 3.0 0.0
9 9.0 0.0
问题内容: 给定一个熊猫数据框,其中包含可能在此处和附近散布的NaN值: 问题: 如何确定哪些列包含NaN值?特别是,我可以获取包含NaN的列名称的列表吗? 问题答案: 更新: 使用熊猫0.22.0 较新的Pandas版本具有新的方法‘DataFrame.isna()’和‘DataFrame.notna()’ 作为列列表: 选择这些列(至少包含一个值): 旧答案: 尝试使用isnull(): 或作
问题内容: 假设我有一个带有 的DataFrame : 我需要做的是用上方的同一列中NaN的第一个非NaN值替换每个值。假设第一行永远不会包含NaN。因此,对于前面的示例,结果将是 我可以遍历整个DataFrame的逐列,逐元素并直接设置值,但是是否有一种简单的方法(最佳无循环方法)来实现这一点? 问题答案: 你可以在上使用该方法,并将该方法指定为ffill(正向填充): 这个方法 将上一个有效观
我有例如[100,30]数据帧,我想找到哪些行有超过20列的值?所有行都有30列,但其中一些有NaN值,因此我设置了20列的限制,我想在col.iloc=20之后找到哪些行有列的值 例如,即使在行号05我们有更多的楠值,由于分布,我想找到哪些行有超过3列的X值或楠值(在下表中,我想找到行号1、3、4和7的索引。 我的预期结果: 我发现行的 ID:1,3,4,7 是行在列中有值 但在大型数据帧中 这
问题内容: 我在数据库中有几个表。我想查找哪些列(在哪些表中)没有任何值(列中都为NULL)。在下面的示例中,结果应该是 我不知道如何创建这种查询。非常感谢您的帮助! 问题答案: 对于单列,返回不为null的行数: 您可以为所有列生成查询。根据Martin的建议,您可以使用排除不能为空的列。例如: 如果表的数量很大,则可以类似的方式为所有表生成查询。所有表的列表在中。
我在编写查找 MaxHeap 优先级队列是否包含值的方法时遇到问题。 说明如下:如果在队列中找到给定值,包含(E)方法应返回true。它应该使用其私有助手方法递归搜索队列。 这是我目前掌握的情况
问题内容: 实现目标: 我想要名称属性包含列表中任何单词的所有对象。 我有: 例如: 然后应返回具有该名称的对象,因为word2在列表中。 请帮忙! 问题答案: 您可以使用对象来构造如下查询: 编辑: 是一种奇特的写作方式 您还可以使用显式的for循环来构造对象。