使用函数遍历 Dataframe 中的行并计算非 NA 值

时间:2021-04-28 07:48:04

标签: python pandas dataframe numpy series

我的数据框:billboard_2 enter image description here

我需要使用应用函数和简单的 Python 函数来计算一首歌在广告牌上出现的周数。但显然,我做不到。

我设法通过 lambda 函数做到了,但我应该使用 apply 函数。我得到 lambda 函数的输出正是我使用普通函数所需要的。

WeeklyRating = billboard_2.apply(lambda x : x.count()-1, axis=1)

WeeklyRating

使用 lambda 函数输出 enter image description here

我尝试将该 lambda 函数转换为普通函数,但每次都出现错误。 以下是我尝试过的,但出现错误提示 - “Series”对象没有属性“iterrows”。

def bill_week(val):
    for i, row in val.iterrows():
        return(row.count()-1)

billboard_2.apply(bill_week)

我想我要问的是如何将该 lambda 函数转换为普通函数。

1 个答案:

答案 0 :(得分:0)

count(axis=1) 更不用说拒绝了。一行中的非 na 值

billboard_2.count(axis=1)

如果您想使用 .apply

def count_non_na(x):
    return x.isna().sum()

billboard_2.apply(count_non_na, axis=1)

结合lambda

billboard_2.apply(lambda x: x.isna().sum(), axis=1)