我是 python 和 pandas 的新手。我们如何在忽略空白/无/NaN 值的情况下对多个列应用 groupby 和聚合? 基本上,我想汇总日期的列并计算剩余列的数量,忽略 None/blank/NaN 值。
例子: 我有这样的数据:
ID Ra out recommen navi Time
0 1 7 None None NaN 2013-11-11
1 2 1 None None 3 2013-11-11
2 5 5 None None 1 2013-11-12
3 6 9 None None NaN 2013-11-12
4 9 2 None None NaN 2013-11-12
5 10 10 None None NaN 2013-11-12
6 11 10 None None NaN 2013-11-12
7 12 10 None None NaN 2013-11-12
8 13 5 None None NaN 2013-11-12
我正在尝试对这些值应用 groupby 和计数聚合函数,如下所示: daily=df.groupby('时间').count()
这给了我:
ID Ra out recommen navi Time
2 2 2 2 2 2013-11-11
7 7 7 7 7 2013-11-12
预期输出为:
ID Ra out recommen navi Time
2 0 0 0 1 2013-11-11
7 0 0 0 1 2013-11-12
提前谢谢你!
最佳答案
使用方法dropna()
阅读文档以获取更多信息:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html
提前使用您的 id 列作为索引。
您可以执行以下操作:
df = df.set_index(df["ID"])
文档 -> http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.set_index.html
关于python - Pandas groupby 聚合忽略空白或无值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32564118/