繁体   English   中英

Pandas - 获取除一组列之外所有值为 null 的行数

Pandas - Get count of rows where all values are null except for a set of columns

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个 dataframe 如下所示(下面的示例供参考,原始有更多列):

数据框示例表

我正在尝试获取除某些特定列外所有列均为 null (NaN) 的行列表。 例如,如果这些特定列是 col2 和 col3,我会得到第一行和第三行。 如果特定列只是 col1,我只会得到最后一行。

只计算满足这些条件的行也可以。

我知道如何通过遍历每一行并进行比较来做到这一点,但有没有更快的方法来做到这一点?

谢谢!

2 个回复

你可以试试:

# specific columns
cols = ['col1','col2']

df[df.drop(cols, axis=1).isna().all(1)]

那不会检查您是否在cols中有数据。 如果你需要,你可以这样做:

other_nan = df.drop(cols, axis=1).isna().all(1)
chosen_notna = df[cols].notna().any(1)

df[other_nan & chosen_notna]

这是一个 function 用于这样做。 我使用difference查找获取不包括指定列的 dataframe,然后使用isna()all()查找空行:

def null_rows(df, exclude=None):
    exclude = [] if exclude is None else exclude
    return df[df[df.columns.difference(exclude)].isna().all(1)]

例子:

df = pd.DataFrame({'col1': [None, 3, None, 8],
                   'col2': [1, None, 6, None],
                   'col3': [2, 4, 7, None],
                   'col4': [None, None, None, None],
                   'col5': [None, 5, None, None]})

print(null_rows(df, ['col2', 'col3']))

Output:

   col1  col2  col3  col4  col5
0   NaN   1.0   2.0  None   NaN
2   NaN   6.0   7.0  None   NaN
1 pandas - 基于多列获取最大组数

我有以下熊猫数据帧df : 它们是多索引的( latitude 、 longitude和time )。 有一个名为AET_date的列指示其每条记录的实际日期。 FFDI_SFC是每个记录的 nan-able 值。 我想要实现的是为具有相同latitude 、 longitude和AET_d ...

2 pandas - 包括所有列和行对值

我有一个缺少大量数据的数据集。 示例数据文件: 我正在努力创建一个如下所示的数据透视表: 我不在乎空白是在顶部还是在底部。 关键是每个A值都显示为一列,对于行,只显示现有的B,C对。 以下代码: 创建一个数据透视表,如: 如果我将所有None值设置为空白 ...

3 Pandas - 使用一个值填充列中的特定行数

我有一个40行的DataFrame列,完全用0填充,除了三行有数字的行。 一列只有一个有价值的数字。 是否有可能获取这些数量的值并用它们填充列,直到它们再次出现有价值的数字? 因此, $21,151.67将填充从第1行到第10行的所有行。 $50,500.00将填写第11- ...

5 Pandas - 过滤所有列

我在 Pandas 中有一个平方相关矩阵,我试图找出最有效的方法来返回所有值(总是浮点数 -1 <= x <= 1)高于某个阈值的值。 pandas.DataFrame.filter方法要求提供列列表或 RegEx,但我总是想传入所有列。对此有最佳实践吗? ...

6 如何计算在Pandas数据框中同时包含一组列中的值和另一列中的另一个值的行数?

问题 我有一个数据框,有一定数量的观察值作为列,测量值作为行。 观测结果为A, B, C, D ... 它还具有一个类别列,该列表示度量的类别。 类别: a, b, c, d ... 如果一列中连续包含一个nan ,则表示尚未进行该测量期间的观察(因此nan不是observation ,因此缺 ...

7 Pandas - 列值转换

我的数据:我有一个如下所示的数据集: salary_range_low中的值基于salary_frequency ( ['Daily', 'Hourly' or 'Annual'] )。 我的问题:如何将所有salary_range_low转换为年度值以便更好地进行比较? ...

8 Pandas - 替换列值

我知道这个问题有很多主题,但是没有一种方法对我有用,所以我发布了我的具体情况 我有一个看起来像这样的数据框: 我想要做的是将性别列中的所有 0 替换为“女性”,将所有 1 替换为“男性”,但是当我使用上面的代码时,数据框中的值似乎没有改变 我是否错误地使用了 replace()? 还是有更好的方 ...

9 Pandas - 获取给定列的第一行值

这似乎是一个非常简单的问题……但我没有看到我期待的简单答案。 那么,如何获取 Pandas 中给定列的第 n 行的值? (我对第一行特别感兴趣,但也会对更一般的实践感兴趣)。 例如,假设我想将 Btime 中的 1.2 值提取为变量。 这样做的正确方法是什么? df_test = ...

10 Pandas - 如何获取列中每个值的出现次数

我有一个名为 fifa 的 csv 文件,它是足球运动员统计数据的记录。 有一列称为“首选脚”(用来踢球),它的值可以是“左”脚或“右”脚,仅适用于每个记录(球员)。 那么计算右脚和左脚的玩家数量的最快方法是什么? 示例表: 从这个表中,我需要列中每个可能值的玩家数量,因此反过来,上面的表 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM