从两个状态矩阵制作一个状态更改矩阵(需要帮助更有效地编程矩阵查找)

时间:2018-11-06 16:44:54

标签: python python-3.x matrix

问题:我有2个矩阵,均为“状态矩阵”。基本上看起来像这样:

  

ID,日期,状态1,状态2 .....,状态54

     

1,01/20,“ bla”,2,.....,28

我正在尝试创建一个新矩阵,每行代表一个ID的状态变化,看起来像这样:

  

ID变量先前值,新值,最后日期,新日期

     

1,状态1,11,15,01-01,01-20

     

1,状态10、12、18,...。 ..。

     

1,状态17,25,23,...

     

1,状态27,13,16,....

现在我正在做的是粘贴两个表,并按ID然后按Date排序,之后我做一个for循环,当他发现1个值时,该循环以2行通过行跳并检查所有列。与下面的代码不同,它将其追加到change.values矩阵

代码:

for i in range(0,Encontrados_con_Cambios.shape[0],2):

    for j in range(1,Encontrados_con_Cambios.shape[1]-1):  

        if ((Encontrados_con_Cambios.iloc[i,j] != Encontrados_con_Cambios.iloc[i+1,j]) and 
        (not pd.isnull(Encontrados_con_Cambios.iloc[i,j]) or (not pd.isnull(Encontrados_con_Cambios.iloc[i+1,j])))):

                    Cambios = Cambios.append([{'id': Encontrados_con_Cambios.iloc[i,0],
                         'Variable': Encontrados_con_Cambios.columns[j],
                         'Fecha_Inicial': Encontrados_con_Cambios.iloc[i+1,53],
                         'Fecha_Final': Encontrados_con_Cambios.iloc[i,53],
                         'Estado_Inicial': Encontrados_con_Cambios.iloc[i+1,j],
                         'Estado_Final': Encontrados_con_Cambios.iloc[i,j] }],ignore_index=True)

非常感谢任何帮助

0 个答案:

没有答案