Pivot table with count if

Pivot table with count if

我想统计数字是否大于 0.1,然后按月-年分组,看看哪个月-年的变化超过 0.1 的天数最多。

我有一个像这样的 df,包含每日数据,但只显示月-年索引。

table = df.pivot_table(df, columns=['btc','bnb','eth','xmr','xrp'], aggfunc=df[df > 0.1].count())

print(table)

为什么不工作?

结果应该是这样的

您可以 stack 数据帧然后将堆叠帧与 0.1 进行比较以创建布尔掩码然后在 level=0 上取 sum 以计算更大的值比 0.1month-year:

df.stack().gt(0.1).sum(level=0)

替代方法:

df[df > 0.1].stack().count(level=0)

编辑:如果您想计算每个 month-year 列中大于 0.1 的值:

df.gt(0.1).sum(level=0)