【发布时间】:2020-11-04 11:14:58
【问题描述】:
我想从我的数据框的 4 列创建一个 3D 矩阵
输入:
df = pd.DataFrame({
"u_id": [55218,55218,55218,55222],
"i_id": [0,0,1,1],
"Num": [0,2,1,2]
"rating":[-1,2,0,2]})
x 轴:'u_id'; y轴:'i_id' z轴:'Num'
矩阵中的值应该是'rating'
结果应该是
[[[NaN,NaN],
[-1 ,NaN]],
[[NaN,NaN],
[ 0,NaN]],
[[ 2,NaN],
[NaN,2]]]
到目前为止我尝试了什么:
x = df['u_id']
y = df['i_id']
z = df['Num']
value = df['rating']
Matrix = [[0 for m in len(z)] for m in len(z)] for c in len(x):
Matrix[c][r][m]= value
但这不起作用。
【问题讨论】:
-
您的列表推导代码无效python,例如:
range(df['u_id'])不是您使用range的方式,您缺少右括号,推导之外c未定义.您的预期输出是什么? -
这将产生一个尺寸为
(55223, 2, 3)的3D 数组来存储四个值。并且将包含与您的数据框完全相同的信息。 -
好的,我编辑了我的问题。我想要一个尺寸为 (2,2,3) 的 3D 数组
-
您的预期输出形状为 (3,2,2)
标签: python pandas dataframe matrix 3d