如何将两个附加的数据帧按列分组



我有两个具有相同列名的数据帧,例如:

col1 col2 col3
1    2    3

col1 col2 col3
4    5    6
1    7    8

我已经附加了它们,所以现在新的数据帧如下所示:

col1 col2 col3
1    2    3
4    5    6
1    7    8

问题是,我需要col1中具有相同值的行一个接一个地出现,就像这样:

col1 col2 col3
1    2    3
1    7    8
4    5    6

如何按col1对数据帧进行排序以创建这种效果(而不修改数据帧类型(?

使用DataFrame.sort_values:

df = pd.concat([df1, df2]).sort_values('col1', ignore_index=True)

如果您关心确保数据帧1的值在绑定的数据帧2的值之前排序,则可以使用"mergesort"算法。默认算法将任意排列绑定的值。

df.sort_values(by='col1', axis=1, ascending=True, inplace=True, kind='mergesort')

您可以按任意列对DataFrame进行排序,例如:

df.sort_values(by=['col_1', 'col_2'], ascending=[True, False], inplace=True)

之后,您可能需要重置行索引,因为它们会被打乱:

df.reset_index(drop=True, inplace=True)

最新更新