>我有这个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]