dataframe排序

img


为什么进行了排序,前面的一些数据也完成了排序,后面的偏偏没有改变呀,这是为什么呀

读进来数字是什么类型,改成int类型试试

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7532700
  • 这篇博客你也可以参考下:20210811 | 三种方法·将字典数据结构转换为DataFrame
  • 除此之外, 这篇博客: Pandas数据结构Dataframe:基本概念及创建中的 2.3 创建方法三:通过二维数组直接创建 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1) 通过二维数组直接创建Dataframe,得到一样形状的结果数据,如果不指定index和columns,两者均返回默认数字格式

    2) index和colunms指定长度与原数组保持一致

    ar = np.random.rand(9).reshape(3,3)
    print(ar)
    df1 = pd.DataFrame(ar)
    print(df1)
    

    –> 输出的结果为:(不指定index和columns)

    [[0.65868808 0.33375653 0.39760116]
     [0.6693393  0.84839768 0.35256847]
     [0.8817482  0.26198774 0.80020949]]
     
              0         1         2
    0  0.658688  0.333757  0.397601
    1  0.669339  0.848398  0.352568
    2  0.881748  0.261988  0.800209
    

    指定index和columns下创建数据

    df2 = pd.DataFrame(ar, index = ['a', 'b', 'c'], columns = ['one','two','three']) 
    print(df2)
    

    –> 输出的结果为:

            one       two     three
    a  0.658688  0.333757  0.397601
    b  0.669339  0.848398  0.352568
    c  0.881748  0.261988  0.800209
    
  • 以下回答由chatgpt基于相关博客总结生成:

    针对排序的问题,可能具体原因需要看代码和数据,但通常出现这种情况是由于没有理解DataFrame的排序规则。对于DataFrame,排序操作默认是以行为单位进行的,如果想要按照某一列排序,需要使用sort_values()函数,并传递参数by。以下是一些可能的解决方案:

    1. 对整个DataFrame排序,按照每一列的默认升序(从小到大)排列:
    df_sorted = df.sort_values() #或者df.sort_values(axis=0)
    
    1. 对整个DataFrame按某一列排序,指定降序(从大到小)排列:
    df_sorted = df.sort_values(by='column_name', ascending=False)
    
    1. 对整个DataFrame按多列排序,按照先第一列、再第二列的升序排列:
    df_sorted = df.sort_values(by=['column_1', 'column_2'])
    
    1. 对选定的部分数据排序,比如前10行按某一列升序排列:
    df_partial_sorted = df.iloc[:10].sort_values(by='column_name')
    

    以上仅是一些可能的解决方案,具体实现方式需要结合实际情况进行调整。