【发布时间】:2022-01-10 20:16:25
【问题描述】:
我想为每个唯一的digit_vals 值一个一个地遍历vals 数组中的列表。 digit_vals 值显示预期输出的第 n 个数字,因此由于 digit_vals 中的第一个值是 24,因此这意味着它之前的所有数字都将用零填充,而第 24 个数字将包含来自 @987654325 的值@。由于digit_vals 中有两个 24,这意味着vals ([-3.3, -4.3, 23.05, 23.08, 23.88, 3.72]) 的第一个列表中的第二个索引将包含预期输出中的第 24 个值,即-4.3。 vals 中第二个列表的第四个索引将包含 digit_vals 中第 27 个值的值,依此类推。 digit_vals 之间的空白也将在结果中用零填充,因此在 24 和 27 之间,第 25 位和第 26 位将分别有 2 个零。我怎样才能编写这个函数来实现下面的预期输出?
import pandas as pd
import numpy as np
digit_vals = np.array([24, 24, 27, 27, 27, 27,
28, 28, 28, 31])
vals = np.array([list([-3.3, -4.3, 23.05, 23.08, 23.88, 3.72]),
list([2.3, 2.05, 3.08, -4.88, 4.72]),
list([5.3, 2.05, 6.08, -13.88, -17.2]),
list([9.05, 6.08, 3.88, -13.72])], dtype=object)
预期输出:
array([ 0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
-4.3, , 0. , 0. , -4.88 ,
6.08, , 0 , 9.05])
【问题讨论】:
标签: python pandas list numpy indexing