0

我想问一下我的问题。我想在 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的初学者。谢谢

4

1 回答 1

0

如果您不介意使用熊猫:pandas.DataFrame.stack

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

如果您想在纯 python 中执行此操作,则可以执行以下操作:

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())
于 2019-02-18T16:19:26.443 回答