Python/Pandas:基于公共行标识符和唯一行-列组合从不同的数据帧中划分数字列

Python/Pandas:基于公共行标识符和唯一行-列组合从不同的数据帧中划分数字列,python,pandas,dataframe,Python,Pandas,Dataframe,我想根据一个通用的唯一行标识符和唯一的行-列组合来计算两个数据帧的数字列之间的变化率 这里有一个例子。我选择将表格显示为图像,以便使用颜色突出显示这两个数据集的特性。也就是说,每个数据帧包含数字列和非数字列,行和列的顺序可能不相同。此外,应进行计算的数值列始终位于“时间”列之后 df.divide()方法在这里不起作用,因为行和列的顺序不同。我在线程中也看到了最重要的答案,但这种方法并没有推广到我的 如果问题主要是列和行的顺序不正确,那么可以通过对列和行重新排序来解决 #Identifying

我想根据一个通用的唯一行标识符和唯一的行-列组合来计算两个数据帧的数字列之间的变化率

这里有一个例子。我选择将表格显示为图像,以便使用颜色突出显示这两个数据集的特性。也就是说,每个数据帧包含数字列和非数字列,行和列的顺序可能不相同。此外,应进行计算的数值列始终位于“时间”列之后


df.divide()
方法在这里不起作用,因为行和列的顺序不同。我在线程中也看到了最重要的答案,但这种方法并没有推广到我的

如果问题主要是列和行的顺序不正确,那么可以通过对列和行重新排序来解决

#Identifying the columns for which the difference is to be computed. Since #'Time' is the 4th column, we take all columns after that
valCols = list(df.columns)[4:]

#Sorting the datasets so that the rows align
df1 = df1.sort_values('ID')
df2 = df2.sort_values('ID')

#Keeping only the value columns. This also ensures that the columns are in the same order now
df1 = df1[valCols]
df2 = df1[valCols]



两个dfs中是否都有相应的列和行?您可以将列按单向排序,例如lst=df1.columns.tolist df2[[lst]],然后再对行进行排序吗?