熊猫列列表中每行的第一个非空值

戴夫·查利斯(Dave Challis):

如果我在Pandas中有一个DataFrame,看起来像这样:

    A   B   C
0   1 NaN   2
1 NaN   3 NaN
2 NaN   4   5
3 NaN NaN NaN

如何从每一行中获取第一个非空值?例如,上面我想得到:([1, 3, 4, None]或等效的Series)。

EdChum:

这是一种非常麻烦的方法,首先用于first_valid_index获取有效列,将返回的序列转换为数据框,以便我们可以apply逐行调用并将其用于索引回原始df:

In [160]:
def func(x):
    if x.values[0] is None:
        return None
    else:
        return df.loc[x.name, x.values[0]]
pd.DataFrame(df.apply(lambda x: x.first_valid_index(), axis=1)).apply(func,axis=1)
​
Out[160]:
0     1
1     3
2     4
3   NaN
dtype: float64

编辑

稍微干净一点的方法:

In [12]:
def func(x):
    if x.first_valid_index() is None:
        return None
    else:
        return x[x.first_valid_index()]
df.apply(func, axis=1)

Out[12]:
0     1
1     3
2     4
3   NaN
dtype: float64

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

获取每行的第一个非空值

熊猫-在列中查找第一个非空值

dplyr:需要帮助返回每行中第一个非NA值的列索引

熊猫分组依据,并找到所有列的第一个非空值

筛选列表中符合每行熊猫标准的第一个元素

具有多列的表中每个组的第一个非空值

PySpark:获取数据框中每个列的第一个非空值

识别Pandas DataFrame每行中的第一个和所有非零值

如何为每行返回一系列列中的第一个非NULL值?第二个非NULL值?

如何使用Oracle SQL获取多个列中的第一个非零/非空值和最后一个零/非空值

在每行熊猫中,从第一个非NaN开始,X值的窗口保持不变,而所有其他值均为NaN

将每行的第一个值用作键,将熊猫数据框的行复制到列表的字典

熊猫从组中获取列的第一个和最后一个值

从选定的行中为每一列获取第一个非空值

在熊猫的前一行中获取第一个非零值

返回第一个非空/空白值?

Pandas:用第一个非空值为用户填写列的值

如何在excel中获得第一个非空/空值

获取每行最后一个非空列的值

SQL Server 2008 R2:从列中获取第一个非空值

根据第一个有效的非空列填充数据框中的缺失值

从索引指定的特定列中获取第一个非空值。电子表格

我可以插入特定值来替换每行中的第一个非NULL值吗

使用合并从2个表中返回第一个非空值

查找熊猫系列中的第一个非零值

问:从excel中的第一个非空值开始一行

SQL如何找到2列之间的第一个非空值

如何获取列表中的第一个非空项目

在Java 8中懒惰地返回第一个非空列表