如何按类别标签或任何特定列对熊猫数据框进行排序/分组

杰克斯
class col2 col3 col4 col5
1     4    5    5    5
4     4    4.5  5.5  6
1     3.5  5    6    4.5
3     3    4    4    4
2     3    3.5  3.8  6.1

我在示例中使用了假设数据。实际的DataFrame的形状为6680x1900。我将这些数据聚类为50标记的类(1到50)。如何按class标签升序对数据进行排序

我努力了:

df.groupby([column_name_lst])["class"]

但是由于以下错误而失败:

TypeError:您必须提供“按”和“级别”之一

如何解决这个问题呢?预期输出为:

class col2 col3 col4 col5
1     4    5    5    5
1     3.5  5    6    4.5
2     3    3.5  3.8  6.1
3     3    4    4    4
4     4    4.5  5.5  6
耶斯列尔

我认为您可以使用DataFrame.sort_valuesifclassSeries

print (type(df['class']))
<class 'pandas.core.series.Series'>


print (df.sort_values(by='class'))
   class  col2  col3  col4  col5
0      1   4.0   5.0   5.0   5.0
2      1   3.5   5.0   6.0   4.5
4      2   3.0   3.5   3.8   6.1
3      3   3.0   4.0   4.0   4.0
1      4   4.0   4.5   5.5   6.0

另外,如果需要groupby,请使用参数by

print (df.groupby(by='class').sum())
       col2  col3  col4  col5
class                        
1       7.5  10.0  11.0   9.5
2       3.0   3.5   3.8   6.1
3       3.0   4.0   4.0   4.0
4       4.0   4.5   5.5   6.0

如果classindex,请使用Kartik solution

print (df.index)
Int64Index([1, 4, 1, 3, 2], dtype='int64', name='class')

print (df.sort_index())
       col2  col3  col4  col5
class                        
1       4.0   5.0   5.0   5.0
1       3.5   5.0   6.0   4.5
2       3.0   3.5   3.8   6.1
3       3.0   4.0   4.0   4.0
4       4.0   4.5   5.5   6.0

另外,如果需要groupby,请使用参数level

print (df.groupby(level='class').sum())
       col2  col3  col4  col5
class                        
1       7.5  10.0  11.0   9.5
2       3.0   3.5   3.8   6.1
3       3.0   4.0   4.0   4.0
4       4.0   4.5   5.5   6.0

index,但第一个解决方案更好,因为更通用:

print (df.groupby(df.index).sum())
       col2  col3  col4  col5
class                        
1       7.5  10.0  11.0   9.5
2       3.0   3.5   3.8   6.1
3       3.0   4.0   4.0   4.0
4       4.0   4.5   5.5   6.0

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

按列总和排序熊猫数据框

Pandas(Python)-如何按两个日期列对熊猫数据框进行排序

如何仅对熊猫数据框中的选定列进行排序

如何在熊猫中按数据框分组并保留列

绘制按列分组的熊猫数据框

如何对格式错误的熊猫数据框列进行排序?

如何按列值对熊猫数据框的行进行分组?

如何按日期时间对熊猫数据框进行排序

熊猫数据框按多列分组

熊猫:如何按列和索引对数据框进行排序

熊猫:如何按一列的日期对数据框行进行排序

如何按列的值计数对熊猫数据框排序?

如何以特定方式按特定列对熊猫数据框的值进行排序(使用lambda函数,如在std lib中排序)

熊猫按特定行对列进行排序

熊猫数据框按特定值分组

如何按行的长度对熊猫数据框进行排序

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

按类别和时间戳分组的熊猫数据框

如何对多列进行分组以在熊猫数据框中列出

熊猫分组并计数,然后按分组大小对整个数据框进行升序排序?

如何按特定数据框列分组

熊猫数据框,按日期/月份分组,按类别计数

按系列对熊猫数据框进行排序

如何按索引对数据框的列进行排名?熊猫

在熊猫分组后按新索引对数据框进行排序

如何使用熊猫数据帧在直方图中按标签对列进行分组?

如何按列的标准差对熊猫数据框进行排序?

Spark:如何按列对数据框进行分组

如何根据两列对熊猫数据框进行分组?