Python 如何基于由另一列指示的数组元素的值创建列?
我有一个大数据帧,我想根据另一列指示的数组位置创建一列。在下面的示例中,我想创建一个基于param数组分配值的列,其中位置由列“type”指示 预期的结果将是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 如果不将帧转换为数组并通过循环获得结果,我想不出一个好的方法来实现它。我曾尝试为类型创建虚拟变量并执行矩阵乘法,但由于我的数据中有
>> 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])