将DataFrame转换为Matrix并访问单元格

时间:2017-04-14 00:20:01

标签: python pandas numpy

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

你能帮帮我吗? 谢谢

1 个答案:

答案 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]