问题:我有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)
非常感谢任何帮助