Ordenar todas las columnas de un dataframe

Tengo un dataframe de 2000 filas y 500 columnas. Quiero ordenar cada columna en orden ascendente. Las columnas no tienen nombres, solo están numeradas 0-500.

Datos aleatorios: df = pandas.DataFrame(np.random.randint(0,100,size=(2000, 500)), columns=range(500))

El uso de df.sort_values(by=0,axis=0) ordena la columna 0, como se esperaba. Pero luego, al usar df.sort_values(by=1,axis=0) ordena la 1ª columna, pero se baraja de nuevo la 0ª columna. En otras palabras, quiero

 index 0 1 2 1 5 5 5 2 6 7 5 3 7 9 8 

Pero solo puedo ordenar una columna a la vez. He intentado df.sort_values(by=df.columns[0:524],axis=0) pero eso produce un error de clave.

Creo que puedes usar numpy.sort con el constructor DataFrame o apply con sort_values con conversión a numpy array por values :

 df = pd.DataFrame(np.sort(df.values, axis=0), index=df.index, columns=df.columns) 

Otra solución:

 df = df.apply(lambda x: x.sort_values().values) print (df) 
  0 1 2 3 4 5 6 7 8 9 ... 490 491 492 \ 0 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 4 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 5 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 6 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 7 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 8 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 9 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 10 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 11 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 12 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 13 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 14 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 15 0 0 0 0 0 1 0 0 0 0 ... 0 0 0 16 0 0 0 0 0 1 1 0 0 0 ... 0 0 0 17 0 0 0 0 0 1 1 0 0 0 ... 0 0 0 18 0 0 0 0 0 1 1 0 0 0 ... 0 0 0 19 0 0 0 0 0 1 1 1 1 0 ... 0 0 0 20 0 0 1 0 0 1 1 1 1 0 ... 0 0 0 21 0 0 1 0 0 1 1 1 1 1 ... 0 1 0 22 0 1 1 0 0 1 1 1 1 1 ... 0 1 0 23 1 1 1 0 0 1 1 1 1 1 ... 0 1 0 24 1 1 1 0 0 1 1 1 1 1 ... 0 1 0 25 1 1 1 1 0 1 1 1 1 1 ... 0 1 0 26 1 1 1 1 0 1 1 1 1 1 ... 1 1 1 27 1 1 1 1 0 1 1 1 1 1 ... 1 1 1 28 1 1 1 1 0 1 1 1 1 1 ... 1 1 1 29 1 1 1 1 0 1 1 1 1 1 ... 1 1 1 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 1970 97 98 98 98 98 98 99 98 98 98 ... 98 98 98 1971 97 98 98 98 98 98 99 98 98 98 ... 98 98 98 1972 98 98 98 98 98 98 99 98 98 98 ... 98 98 98 1973 98 98 98 99 98 98 99 98 98 98 ... 98 98 98 1974 98 98 98 99 98 98 99 98 98 98 ... 98 98 98 1975 98 98 98 99 98 98 99 98 98 98 ... 98 98 98 1976 98 98 98 99 98 98 99 98 99 99 ... 98 98 98 1977 98 98 98 99 98 98 99 98 99 99 ... 98 98 99 1978 98 98 98 99 98 98 99 98 99 99 ... 98 98 99 1979 98 98 98 99 99 99 99 98 99 99 ... 98 98 99 1980 98 98 98 99 99 99 99 98 99 99 ... 98 98 99 1981 99 99 98 99 99 99 99 98 99 99 ... 99 98 99 1982 99 99 98 99 99 99 99 98 99 99 ... 99 98 99 1983 99 99 98 99 99 99 99 98 99 99 ... 99 98 99 1984 99 99 98 99 99 99 99 99 99 99 ... 99 99 99 1985 99 99 98 99 99 99 99 99 99 99 ... 99 99 99 1986 99 99 98 99 99 99 99 99 99 99 ... 99 99 99 1987 99 99 99 99 99 99 99 99 99 99 ... 99 99 99 1988 99 99 99 99 99 99 99 99 99 99 ... 99 99 99 1989 99 99 99 99 99 99 99 99 99 99 ... 99 99 99 1990 99 99 99 99 99 99 99 99 99 99 ... 99 99 99 1991 99 99 99 99 99 99 99 99 99 99 ... 99 99 99 1992 99 99 99 99 99 99 99 99 99 99 ... 99 99 99 1993 99 99 99 99 99 99 99 99 99 99 ... 99 99 99 1994 99 99 99 99 99 99 99 99 99 99 ... 99 99 99 1995 99 99 99 99 99 99 99 99 99 99 ... 99 99 99 1996 99 99 99 99 99 99 99 99 99 99 ... 99 99 99 1997 99 99 99 99 99 99 99 99 99 99 ... 99 99 99 1998 99 99 99 99 99 99 99 99 99 99 ... 99 99 99 1999 99 99 99 99 99 99 99 99 99 99 ... 99 99 99 493 494 495 496 497 498 499 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 11 0 0 0 0 0 0 0 12 0 0 0 0 0 0 0 13 0 0 0 0 0 0 0 14 0 0 0 0 0 0 0 15 0 0 0 0 1 0 0 16 0 1 0 0 1 0 0 17 0 1 0 0 1 0 0 18 1 1 0 0 1 0 0 19 1 1 1 0 1 0 0 20 1 1 1 0 1 0 1 21 1 1 1 0 1 0 1 22 1 1 1 0 1 0 1 23 1 1 1 0 1 0 1 24 1 1 1 0 1 0 1 25 1 1 1 0 1 0 1 26 1 1 1 0 1 0 1 27 1 1 1 1 1 0 1 28 1 1 1 1 1 0 1 29 1 1 1 1 1 0 1 ... ... ... ... ... ... ... ... 1970 98 98 98 98 98 98 98 1971 98 98 98 98 98 98 98 1972 98 98 98 98 98 98 98 1973 98 98 98 98 98 98 98 1974 98 98 98 99 98 98 98 1975 98 98 98 99 98 98 98 1976 99 98 98 99 98 98 98 1977 99 98 98 99 98 98 98 1978 99 98 98 99 99 98 98 1979 99 99 98 99 99 98 98 1980 99 99 98 99 99 99 99 1981 99 99 98 99 99 99 99 1982 99 99 98 99 99 99 99 1983 99 99 99 99 99 99 99 1984 99 99 99 99 99 99 99 1985 99 99 99 99 99 99 99 1986 99 99 99 99 99 99 99 1987 99 99 99 99 99 99 99 1988 99 99 99 99 99 99 99 1989 99 99 99 99 99 99 99 1990 99 99 99 99 99 99 99 1991 99 99 99 99 99 99 99 1992 99 99 99 99 99 99 99 1993 99 99 99 99 99 99 99 1994 99 99 99 99 99 99 99 1995 99 99 99 99 99 99 99 1996 99 99 99 99 99 99 99 1997 99 99 99 99 99 99 99 1998 99 99 99 99 99 99 99 1999 99 99 99 99 99 99 99 
 >>> df.sort_values(by=list(df.columns),axis=0) 0 1 2 index 1 5 5 5 2 6 7 5 3 7 9 8 
 df.sort(['col1','col2', ..., 'colN'],ascending=False) 

o

 df.sort(list(df.columns),ascending=False)