【发布时间】:2018-03-25 10:36:13
【问题描述】:
我有以下数据框作为输入:
l = [2,2,2,5,5,5,3,3,2,2,4,4,6,5,5,3,5]
df = pd.DataFrame(l)
print(df)
0
0 2
1 2
2 2
3 5
4 5
5 5
6 3
7 3
8 2
9 2
10 4
11 4
12 6
13 5
14 5
15 3
16 5
作为输出,我想对满足特定条件的总序列进行最终计数。例如,在这种情况下,我想要值大于 3 的序列数。 因此,输出为 3。
- 第一个序列 = [555]
- 第二序列 = [44655]
- 第三序列 = [5]
有没有办法在 pandas 中不使用 for 循环来计算这个? 我已经使用 for-loop 实现了一个解决方案,我想知道在 O(N) 时间内使用 pandas 是否有更好的方法。
非常感谢!
与本题相关:How to count the number of time intervals that meet a boolean condition within a pandas dataframe?
【问题讨论】:
-
为什么不能使用 for 循环?对于这类问题,它可能是最快、最易读的解决方案。
-
是的,这是个好问题。我完全同意,我已经在 O(N) 时间内使用 for 循环实现了一个解决方案,但我想知道是否有更好的方法使用 pandas。
-
啊,那么您可能想在问题正文中澄清这一点,因为回答问题的人可能会偏离您的目标。
-
谢谢,我刚刚编辑了问题,希望问题现在表述得更清楚。