gpt4 book ai didi

python - Pandas:忽略 NaN 的均值函数在哪里

转载 作者:行者123 更新时间:2023-12-01 04:47:21 27 4
gpt4 key购买 nike

我有一些数据框,我想对其进行一些分组应用:

dftest = df1.append(test2).set_index('date')
doWhat = {'foo' : np.sum, 'bar': np.sum, 'employment_total' : np.mean}

employment_total 在某些地方为 NaN,但并非在所有地方:

>>> sum(np.isnan(dftest.employment_total))
404394
>>> sum(np.isnan(dftest.employment_total) == False)
6864

但是,当我创建每月平均值时,到处都是 NaN - 我猜是因为我正在使用 np.mean:

aggASS = dftest.groupby(['state', pd.TimeGrouper("M", label='left'), 'status']).agg(doWhat)
>>> aggASS.loc[np.isnan(aggASS.employment_total) == False]
Empty DataFrame
Columns: [shopping_weighted, employment_total]
Index: []

我需要使用doWhat,因为我对不同的列使用不同的聚合度量。我试图找到在计算之前删除 NaNpandas.mean 函数,但我找不到它。它在哪里?

最佳答案

您可以将mean参数作为字符串'mean'传递,它将使用the pandas version默认情况下,它将跳过 nan。

import pandas as pd

df = pd.DataFrame(data={'x':[1, 2, 3, 4, pd.np.nan], 'y':['a', 'a', 'a', 'b', 'b']})

funcs = {'x':'mean'}

print(df.groupby('y').agg(funcs))
# x
# y
# a 2
# b 4

关于python - Pandas:忽略 NaN 的均值函数在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29148189/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com