Я хочу найти в данном столбце "type" значения этого столбца, который повторяется "n" раз.

Я сделал это:

n = 5
df = dataf["type"].value_counts() > 5

print(df) вернет что-то вроде этого:

Bike           True
Truck          True
Car            False

Как получить значения «Велосипед» и «Автомобиль»? Я хочу добавить их в набор.

1
jimmy 10 Окт 2021 в 01:00

5 ответов

Лучший ответ

Вы можете использовать lambda в loc для этого:

import pandas as pd

df = pd.DataFrame({"vehicle": ["bike"] * 7 + ["truck"] * 8 + ["car"] * 4})
print(df)
print("\nUsing loc...")
print(df["vehicle"].value_counts().loc[lambda x: x > 5])

Дает

   vehicle
0     bike
1     bike
2     bike
3     bike
4     bike
5     bike
6     bike
7    truck
8    truck
9    truck
10   truck
11   truck
12   truck
13   truck
14   truck
15     car
16     car
17     car
18     car

Using loc...
truck    8
bike     7
Name: vehicle, dtype: int64
2
user1717828 9 Окт 2021 в 22:05

Попробуй это

aux = dataf["type"].value_counts()
greater_than_five = aux[aux > 5]

Первая строка получает количество типов, а вторая строка фильтрует типы, которые больше пяти.

1
Miguel Pinheiro 9 Окт 2021 в 22:05

Попробуй это,

n = 5
df = dataf["type"].value_counts()[dataf["type"].value_counts() > n]
print(df)
1
claudio paulo 9 Окт 2021 в 22:12

Наиболее эффективный способ - использовать лямбда, которую написал @ user1717828. другой путь :

df = pd.DataFrame({"vehicle": ["bike"] * 7 + ["truck"] * 8 + ["car"] * 4})


df2 = df["vehicle"].agg({'count':'value_counts'})
df2[df2['count'] > 5]
1
kağan hazal koçdemir 9 Окт 2021 в 22:25

Вы можете добавить новый столбец под названием counter, который содержит цифру «1»:

df['counter'] = 1

И используйте groupby:

df = df.groupby(['types']).sum()
df = df[df.counter > n]
0
Doğu Can Elçi 9 Окт 2021 в 22:06