Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何基于由另一列指示的数组元素的值创建列?_Python_Arrays_Dataframe_Slice - Fatal编程技术网

Python 如何基于由另一列指示的数组元素的值创建列?

Python 如何基于由另一列指示的数组元素的值创建列?,python,arrays,dataframe,slice,Python,Arrays,Dataframe,Slice,我有一个大数据帧,我想根据另一列指示的数组位置创建一列。在下面的示例中,我想创建一个基于param数组分配值的列,其中位置由列“type”指示 预期的结果将是 >> df type outcome 0 2 0.10 1 3 0.25 2 0 0.30 3 1 0.40 4 4 0.75 如果不将帧转换为数组并通过循环获得结果,我想不出一个好的方法来实现它。我曾尝试为类型创建虚拟变量并执行矩阵乘法,但由于我的数据中有

我有一个大数据帧,我想根据另一列指示的数组位置创建一列。在下面的示例中,我想创建一个基于param数组分配值的列,其中位置由列“type”指示

预期的结果将是

>> df
   type  outcome
0   2     0.10
1   3     0.25
2   0     0.30
3   1     0.40
4   4     0.75

如果不将帧转换为数组并通过循环获得结果,我想不出一个好的方法来实现它。我曾尝试为类型创建虚拟变量并执行矩阵乘法,但由于我的数据中有100多个类型,这将大大增加计算时间。任何帮助都将不胜感激

如果没有任何for循环,您可以执行以下操作:

df['outcome'] = [param[i-1] for i in df.type.values]
df2 = pd.DataFrame(param)
df = df.set_index('type').join(df2, how='right').sort_values([0])
df2 = pd.DataFrame(param)
df = df.set_index('type').join(df2, how='right').sort_values([0])