"使用statistics.mean()函数在传入空列表时返回NaN"

2024-03-29 13:55:03 发布

您现在位置:Python中文网/ 问答频道 /正文

不确定这是不是一个合适的问题,但我想知道什么是最好的(最简单的?)这样做的方法是。你知道吗

在Python中将空列(或字符串)传递给statistics.mean()函数时,我希望返回一个NaN(不是数字)值。比如说:

variable_mean = statistics.mean(data[column_name])

我希望variable_mean变量等于pandas数据帧有数据点时的平均值,以及NaN为空时的平均值(我有一个for循环,每次迭代都有不同行数的数据帧,有时没有行)。你知道吗

也许我只需要这样做:

if len(data) == 0:
   variable_name = float('nan')

但似乎有更好的办法?你知道吗

谢谢!你知道吗


Tags: 数据方法函数字符串namedatacolumn数字
1条回答
网友
1楼 · 发布于 2024-03-29 13:55:03

我认为mean的非数字/空值失败,所以使用try-except语句:

def check(data, column_name):
    try:
        return statistics.mean(data[column_name])
    except:
        return np.nan

df = pd.DataFrame({'a':[1,2,6],
                   'b':list('abc')})

print (check(df, 'a'))
3
print (check(df, 'b'))
nan

print (check(pd.DataFrame(), 'b'))
nan

相关问题 更多 >