【问题标题】:Creating an Availability Dataframe创建可用性数据框
【发布时间】:2019-01-10 13:48:01
【问题描述】:

我有一个 pandas 数据帧,其中包含多个参数的值与相隔 15 分钟的时间戳。参数可能包含 NaN 值(np.nan)。我的目标是找到每个参数每月可用值的总数,即该月中不为 0 或 np.nan 的值的总数。

我尝试将所有有效值(非零或 np.nan 的值)变为 1;并且所有无效值都为 0。这样我就可以将一个月内的所有参数值相加,然后就可以得到该月可用值的总数。

df.fillna(0)

for col in selected_parameters:
    df.loc[df[col] > 0, col] = 1

这会生成具有 1 表示有效值和 0 表示无效值的 df。

我不能做的是创建一个新的数据帧,它的时间戳将相隔一个月(而不是相隔 15 分钟),并且每个月我都可以获得该月可用值的总数。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    使用带有 sum 的 groupby 作为聚合函数

    df.groupby([df.index.dt.year, df.index.dt.month]).agg('sum')
    

    这假设您的时间戳位于索引处。

    【讨论】:

    • 非常感谢!顺便说一句,我使用的是时间戳,所以不必做 index.dt。 “df.groupby([df.index.year, df.index.month]).agg('sum') ”为我工作。
    • 我能不能只计算“selected_pa​​rameters”而不是所有非索引参数的总和?
    • 这样的? df[selected_pa​​rameters].groupby([df.index.year, df.index.month]).agg('sum')
    猜你喜欢
    • 1970-01-01
    • 2018-07-14
    • 2018-05-31
    • 2012-09-11
    • 1970-01-01
    • 2021-10-05
    • 2020-02-26
    • 1970-01-01
    相关资源
    最近更新 更多