【发布时间】:2021-07-16 14:14:50
【问题描述】:
我试图计算 pandas 数据框中每一列的连续积极事件的数量。 DSM 在此处提供的解决方案 - Counting consecutive positive value in Python array 适用于给定系列。
import pandas as pd
a = [0,1,0,1,1,0,0,0,1,1,0,1,0]
b = [0,0,0,0,1,1,0,1,1,1,0,0,0]
series = pd.Series(a)
consecutiveCount(series).values
数组([0, 1, 0, 1, 2, 0, 0, 0, 1, 2, 0, 1, 0], dtype=int64)
但是,当我尝试对具有多列的数据框执行此操作时,我得到以下信息。
df = pd.DataFrame({'a':a, 'b':b})
consecutiveCount(df)
ValueError: Grouper for '<class 'pandas.core.frame.DataFrame'>' not 1-dimensional
如果我遍历每一列,它可以工作,但速度很慢。是否有一种矢量化方式来一次处理整个数据帧?
谢谢!
【问题讨论】:
-
你的df有多大?
-
适中 - 52 行,60 列。