按列值对数据框中具有相同索引的值进行排序

dray1204

我试图首先按升序按索引排列数据框中的行,但 II 有具有重复索引的行。对于这些,我希望它们按特定列中的值按升序排列。下面是我的数据框的样子:

           layer   row   col       stage  conductance   riverbott
row_Index                                                        
8            0.0   8.0  29.0  123.170732    1250000.0  122.170732
6            0.0   6.0  21.0  123.170732    1250000.0  122.170732
7            0.0   7.0  22.0  123.170732    1250000.0  122.170732
8            0.0   8.0  24.0  123.170732    1250000.0  122.170732
10            0.0   8.0  14.0  123.170732    1250000.0  122.170732
12            0.0   8.0  53.0  123.170732    1250000.0  122.170732
8            0.0   8.0  23.0  123.170732    1250000.0  122.170732
10            0.0   8.0  12.0  123.170732    1250000.0  122.170732

我试过做

df = df.sort_values(['col'])
df = df.sort_index()

在我的数据框中,我的索引值等于我在“行”中的值。我试过使用df = df.sort_values(['row'])代替df.sort_index(). 但是,我一直遇到问题,我的数据框首先按索引按升序排序(这是需要的),但有时会排列具有重复索引的行,最低列值在前,而其他列值在前. 例如:

           layer   row   col       stage  conductance   riverbott
row_Index                                                        
6            0.0   6.0  21.0  123.170732    1250000.0  122.170732
7            0.0   7.0  22.0  123.170732    1250000.0  122.170732
8            0.0   8.0  23.0  123.170732    1250000.0  122.170732
8            0.0   8.0  24.0  123.170732    1250000.0  122.170732
8            0.0   8.0  29.0  123.170732    1250000.0  122.170732
10            0.0   8.0  14.0  123.170732    1250000.0  122.170732
10            0.0   8.0  12.0  123.170732    1250000.0  122.170732
12            0.0   8.0  53.0  123.170732    1250000.0  122.170732

我希望我的数据框像这样组织:

           layer   row   col       stage  conductance   riverbott
row_Index                                                        
6            0.0   6.0  21.0  123.170732    1250000.0  122.170732
7            0.0   7.0  22.0  123.170732    1250000.0  122.170732
8            0.0   8.0  23.0  123.170732    1250000.0  122.170732
8            0.0   8.0  24.0  123.170732    1250000.0  122.170732
8            0.0   8.0  29.0  123.170732    1250000.0  122.170732
10            0.0   8.0  12.0  123.170732    1250000.0  122.170732
10            0.0   8.0  14.0  123.170732    1250000.0  122.170732
12            0.0   8.0  53.0  123.170732    1250000.0  122.170732

我这样做的原因是因为我想删除重复的索引,保留 'col' 中具有最低值的索引。

谢谢您的帮助。

西蒙·罗杰斯

排序:

df = df.reset_index().sort_values(['row_Index', 'col']).set_index('row_Index')

输出:

           layer  row   col       stage  conductance   riverbott
row_Index                                                       
6            0.0  6.0  21.0  123.170732    1250000.0  122.170732
7            0.0  7.0  22.0  123.170732    1250000.0  122.170732
8            0.0  8.0  23.0  123.170732    1250000.0  122.170732
8            0.0  8.0  24.0  123.170732    1250000.0  122.170732
8            0.0  8.0  29.0  123.170732    1250000.0  122.170732
10           0.0  8.0  12.0  123.170732    1250000.0  122.170732
10           0.0  8.0  14.0  123.170732    1250000.0  122.170732
12           0.0  8.0  53.0  123.170732    1250000.0  122.170732

然后删除重复项:

df.loc[~df.index.duplicated(keep='first')] 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

按列值复制pandas数据框中的行,并添加具有重复索引的新列

按列对数据框多索引级别进行排序

对数据帧中具有相同值的列元素进行配对并以矩阵格式显示

根据列对数据框中的日期进行排序,并使用Pandas保持其他列的值

对数据框中具有相同名称的列进行二进制操作

熊猫-按任何列中的最高单个值对数据框进行排序

如何按R中每列的最后一个值对数据框中的列进行重新排序

如何通过列表中的值对数据框进行排序

还有其他方法可以按日期(年月)对数据框列值进行排序

使用R中具有相同值的外部数据框对数据框进行排序

在数据框中对值进行排序,但将具有相同值的项目的顺序随机化

R:按列的最常用值对数据进行排序

按绝对值对数据框进行排序,而无需更改值或添加列

按R中的ALL列对数据框进行排序

如何对R中相同的两列具有不同值的数据框进行子集

按索引对数据框进行排序

按列对数据框中的某些行进行排序

根据列中的固有值对数据框进行排序

按列值对数据框中的行值进行排序

如何按字母顺序按索引值对数据框的列进行排序

按列对数据框进行排序

按 R 中的最小列值对数据框列表进行排序

如何按每个数据框中的列值对列表中的数据框进行排序?

根据列的值和另一列中列表的长度对数据框进行排序

R:按字母数字列对数据框中的所有列进行排序

如何按水平值对数据框进行排序

如何对数据框中的值进行排序?

Pandas:如何在具有相同列标签的列上对数据框进行排序

按索引然后按列对数据框进行排序