У меня есть csv
вот так:
url, sub_url, label
first.com, first.com/1, label1
first.com, first.com/2, label1
first.com, first.com/3, label2
first.com, first.com/4, label2
first.com, first.com/5, label1
second.com, second.com/1, label2
second.com, second.com/2, label2
second.com, second.com/3, label1
third.com, third.com/1, label2
third.com, third.com/2, label2
Меня не волнует sub_url
, я бы хотел, чтобы на выходе было что-то вроде этого:
url, count_label1, count_label2
first.com, 3, 2
second.com, 1, 2
third.com, 0, 1
Я попробовал это:
df = pd.read_csv(path_to_csv, sep=,)
df.groupby( [ "url"] )["label"].value_counts()
Но я получаю одну строку для каждого отдельного значения метки, но я хочу, чтобы она была столбцом. Как мне это сделать?
Вы можете просто сделать crosstab
out = pd.crosstab(df['url'], df['label']).add_prefix('count_').reset_index()