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

Iterate through rows in Dataframe using a function and count the non NA values

我的数据框:billboard_2

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

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

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

WeeklyRating

使用lambda函数输出

我尝试将该 lambda 函数转换为普通函数,但每次我都会遇到一些错误。 以下是我尝试过的方法,我收到一条错误消息 - 'Series' 对象没有属性 'iterrows'.

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

billboard_2.apply(bill_week)

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

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)