我有这个DF
Customer_ID | product_No | Rating
7 | 1223 | 2.0
9 | 1254 | 1.0
8 | 1223 | 5.0
3 | 1265 | 3.0
我想将其转换为矩阵并用0填充空值:
Customer_ID\product_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 !!
你能帮帮我吗? 谢谢答案 0 :(得分:1)
列中有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]