Я предполагаю, что вы используете пандафреймы, поэтому я добавил быстрый подход. Кстати: на самом деле вы используете count
неправильно. Он может только возвращать длину чего-либо (например, список), но не может использоваться в качестве фильтра.
Поскольку вы добавили желаемый результат, я теперь понимаю, чего вы пытаетесь достичь. Я добавил новый фрагмент. Снова я фильтрую «истинные» значения. В следующей строке я начинаю суммировать строки в зависимости от содержимого столбца.
import pandas as pd
# Create your list
# initialize list of lists
data = [ [0, True], [1, False], [1, True], [5, True], [2, True],
[2, False], [3, False], [2, True], [4, False], [1, True],
[6, True], [2, True]]
# Create the pandas DataFrame
df = pd.DataFrame(data, columns=['id', 'click'])
df = df.sort_values(by=['id'])
#------------------------------------------------------------------------------#
# Filter for key value true
df = df[df.click == True]
# Merge lines depending of it's column content
filtered = df.groupby('id').agg({ 'click':'sum'}).reset_index()
# If we need it, rename the column
filtered = filtered.rename(columns={"click": "click_count"})
# Print out the list
print(filtered)
Если это ваш ввод (фрейм данных):
id click
0 0 True
1 1 False
2 1 True
9 1 True
4 2 True
5 2 False
7 2 True
11 2 True
6 3 False
8 4 False
3 5 True
10 6 True
с фрагментом, вы получите следующий вывод:
id click_count
0 0 1.0
1 1 2.0
2 2 3.0
3 5 1.0
4 6 1.0