将数据帧转换为矩阵并访问单元格



>我有这个DF

Customer_ID | product_No | Rating
7           | 1223       | 2.0
9           | 1254       | 1.0
8           | 1223       | 5.0
3           | 1265       | 3.0

我想将其转换为矩阵并用 0 填充空值,如下所示:

Customer_IDproduct_No   | 1223 | 1254 | 1265
7                        | 2.0  |  0.0 | 0.0
9                        | 0.0  |  1.0 | 0.0
8                        | 5.0  |  5.0 | 0.0
3                        | 0.0  |  0.0 | 3.0

我写了这段代码来做到这一点:

import pandas as pd
ratings = pd.read_csv("ratings.csv",names['Customer_ID','product_No','Rating'])

matrix= ratings.groupby(['Customer_ID','product_No']).sum().unstack(fill_value=0)
print (matrix)

现在,当我想访问一个项目但无法访问时。我试过这个

matrix.loc[7][1223]

但我得到 0 !!

你能帮我吗谢谢

您有一个列的MultiIndex

>>> matrix.columns
MultiIndex(levels=[[u'Rating'], [1223, 1254, 1265]],
           labels=[[0, 0, 0], [0, 1, 2]],
           names=[None, u'product_No'])

您可以改为执行以下操作:

matrix.loc[7]['Rating'][1223]

或者,如果您只想使用索引号,您可以执行以下操作:

matrix.iloc[1][0]

最新更新