Изменение структуры CSV в Python для системы рекомендации Turicreate - PullRequest
0 голосов
/ 11 декабря 2018

Я хочу спросить о моей проблеме.Я хочу создать систему рекомендаций в Python.Я уже создал матрицу скрытых функций и сохранил ее в csv, который содержит такие данные:

index    1        2        3       ...      89
1        a        b        c       ...      z
2        d        e        f       ...      y
...
30       g        h        i       ...      x

Для системы рекомендаций я использовал библиотеку turicreate, но turicreate может принять, только если структура csv выглядит следующим образом:

col   index    value
1       1       a
1       2       d
...
89      30      x 

Может кто-нибудь помочь мне с этой проблемой?или кто-то может дать другие предложения по этой проблеме?Потому что я новичок в Python 3. Спасибо

1 Ответ

0 голосов
/ 18 февраля 2019

, если вы не возражаете против использования панд: pandas.DataFrame.stack

df = pd.read_csv(<filename>, <csv_options>)
df_stacked = df.stack()
df_stacked .to_csv(<out_file>, <csv_options>)

Если вы хотите сделать это на чистом питоне, может сработать что-то подобное:

import csv
with open(<in_filename>) as in_file, open(<out_filename>, "w") as out_file:
    csv_reader = csv.DictReader(in_file, delimiter=' ', skipinitialspace=True) # or appropriate csv parameters
    csv_writer = csv.writer(out_file)
    csv_writer.writerow(["col", "index", "value"])
    for row in csv_reader:
        col = row.pop("index")
        csv_writer.writerows((col, idx, value) for idx, value in row.items())
...