pandas groupby聚合忽略空白或无值

时间:2015-09-14 11:51:47

标签: python mysql pandas

我是python和pandas的新手。如何在多列上应用groupby和aggregate来忽略空白/无/ NaN值? 基本上,我想在日期之前聚合列,并计算剩余的列,忽略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和count agregation函数:     每日= df.groupby('时间&#39)。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

提前谢谢!

1 个答案:

答案 0 :(得分:1)

使用方法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