Объединить строки

Есть файл csv:

0,10,15,14
0,12,17,17
1,14,19,15
1,11,12,13

Я его считываю, и даю названия колонкам

data = pd.read_csv('data.csv', names=['name' + str(i) for i in range(3)])
res = dataset.groupby("name0").agg("??")
res_dict = res.T.to_dict("list")

Как мне его сгруппировать чтобы я получил:

x = {
    "0": [[10, 15, 14], [12, 17, 17]],
    "1": [[14, 19, 15], [11, 12, 13]]
    }

Не обязательно через groupby, можно взять уникальные значения - 0 и 1, и сделать по ним выборку. Но я не знаю как.


Ответы (4 шт):

Автор решения: CrazyElf

Python - прекрасный язык, вы можете в качестве аггрегатора указать даже коллекцию:

dataset.groupby("name0").agg(list)

Хотя это не весь ответ, на выходе будет DataFrame, в словарь ещё нужно будет перевести.

→ Ссылка
Автор решения: MaxU
df = pd.read_csv("data.csv", header=None).add_prefix("name")

res = [{a: b.drop(columns="name0").to_numpy().tolist()} for a,b in df.groupby("name0")]

результат:

In [109]: res
Out[109]: [{0: [[10, 15, 14], [12, 17, 17]]}, {1: [[14, 19, 15], [11, 12, 13]]}]
→ Ссылка
Автор решения: Leonid
import csv

d = {}

with open("dataset.csv") as f:
    reader = csv.reader(f, delimiter=',')

    for line in reader:
        k, v = line[0], line[1:]
        d[k] = d.setdefault(k, []) + [v]

print(d)
→ Ссылка
Автор решения: strawdog
data = pd.read_csv('data.csv', header=None)
res={}
[res.setdefault(str(x[0]),[]).append(list(x[1:])) for x in data.values]

res:

{'0': [[10, 15, 14], [12, 17, 17]], '1': [[14, 19, 15], [11, 12, 13]]}
→ Ссылка