选择矩阵-在Python中避免循环以提高效率

时间:2020-10-01 19:41:15

标签: pandas performance dataframe

我正在尝试生成选择矩阵。更准确地说,我有一个DF数据,其中包含每日数据基础上过去30年中DJI的成分(11231,30)。我提取了一个名为“唯一”的列表,其中包含了随着时间的推移已成为道琼斯指数一部分的所有成分(55)。对于唯一项的每个项目,想要指示在给定日期是否唯一性成员已经成为DJI的一部分:如果成员在t时是DJI的一部分,则为1,否则为0。

我知道它应该如何工作,但是当我使用循环时,我的解决方案非常非常缓慢而且效率低下(请参见下面的代码)。

您知道执行我的任务的更有效方法吗?

df包含有关成分(字符串)的信息。形状:(11231,30)

选择矩阵

mat = pd.DataFrame([],columns=unique,index=df.index)
mat[:] = 0

    for i in df.index:
        row_list = df.loc[i,:].to_list()
        for j in mat.columns:
            mat.loc[i,j] = 1 if j in row_list else 0

最好, 托马斯

0 个答案:

没有答案