小编Nat*_*aki的帖子

Pandas Dataframe聚合函数也可以计算nan值

我有以下数据框

\n
print(A)\n\n   Index  1or0\n0      1     0\n1      2     0\n2      3     0\n3      4     1\n4      5     1\n5      6     1\n6      7     1\n7      8     0\n8      9     1\n9     10     1\n
Run Code Online (Sandbox Code Playgroud)\n

我有以下代码(Pandas Dataframe 计算仅立即发生的出现次数),它计算一个接一个立即发生的值的出现次数。

\n
ser = A["1or0"].ne(A["1or0"].shift().bfill()).cumsum()\n\nB = (\n        A.groupby(ser, as_index=False)\n            .agg({"Index": ["first", "last", "count"],\n                  "1or0": "unique"})\n            .set_axis(["StartNum", "EndNum", "Size", "Value"], axis=1)\n            .assign(Value= lambda d: d["Value"].astype(str).str.strip("[]"))\n    )\n\nprint(B)\n\xe2\x80\x8b\n   StartNum  EndNum  Size Value\n0         1       3     3     0\n1         4       7     4     1\n2         8       8     1     0\n3         9      10     2     1\n
Run Code Online (Sandbox Code Playgroud)\n

问题是,当出现 NaN 值时,代码不会将它们放在一个间隔中,而是始终将它们计数为一个大小的间隔,而不是例如 3 …

python dataframe pandas

3
推荐指数
1
解决办法
55
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1