我是 python 和 pandas 的新手,我有以下问题
我有一个数据集
df = pd.read_csv('/home/nikoscha/Documents/ThesisR/dataset.csv', names=['response_nn','event','user'])
我正在尝试使用以下代码创建一个 csr_matrix
# Create lists of all events, users adfnd respones
events = list(np.sort(df.event_id.unique()))
users = list(np.sort(df.user_id.unique()))
responses = list(df.responses)
# Get the rows and columns for our new matrix
rows = df.user_id.astype(float)
cols = df.event_id.astype(float)
# Contruct a sparse matrix for our users and items containing number of plays
data_sparse = sp.csr_matrix((responses, (rows, cols)), shape=(len(users), len(events)))
上面的代码有效。但是当我得到一个训练数据集时
mask = np.random.rand(len(df)) < 0.5
df = df[mask]
df = df.reset_index()
df = df.drop(['index'], axis=1)
或者只是删除特定的行
df = df[df.responses != 2]
并尝试构造稀疏矩阵我得到以下错误
ValueError:行索引超出矩阵维度
谁能解释我为什么?先感谢您
蝴蝶刀刀
相关分类