#python #сортировка #pandas #dataframe
Начал изучать pandas и столкнулся с наверное простой проблемой. У меня есть датафрейм в виде матрицы чисел 150х4 загруженный из файла. Я хочу отсортировать в нём все столбцы по возрастанию. Использую функцию sort_values(), но она сортирует либо первый столбец, либо нужно указывать название каждого столбца в атрибутах функции. А если я не знаю названия столбцов, как мне сказать функции, что я хочу отсортировать все? import pandas as pd data = pd.read_csv('iris.txt', sep=",", header = None) print(data.sort_values(by=0))
Ответы
Ответ 1
Пример: In [86]: data = pd.DataFrame(np.random.randint(1000, size=(10,4))) In [87]: data Out[87]: 0 1 2 3 0 487 487 649 808 1 72 72 826 991 2 449 912 316 847 3 592 979 365 934 4 451 614 268 439 5 256 920 63 51 6 36 957 16 493 7 734 958 432 287 8 981 760 396 168 9 826 394 289 562 In [88]: data.sort_values(df.columns.tolist()) Out[88]: 0 1 2 3 6 36 957 16 493 1 72 72 826 991 5 256 920 63 51 2 449 912 316 847 4 451 614 268 439 0 487 487 649 808 3 592 979 365 934 7 734 958 432 287 9 826 394 289 562 8 981 760 396 168 Иногда возникает необходимость отсортировать все столбцы независимо друг от друга (с потерей целостности строк). Это можно сделать используя numpy.sort: import numpy as np In [102]: pd.DataFrame(np.sort(data, axis=0), columns=data.columns) Out[102]: 0 1 2 3 0 36 72 16 51 1 72 394 63 168 2 256 487 268 287 3 449 614 289 439 4 451 760 316 493 5 487 912 365 562 6 592 920 396 808 7 734 957 432 847 8 826 958 649 934 9 981 979 826 991Ответ 2
Можно так попробовать: data.sort_values(by=list(data.columns),axis=0)
Комментариев нет:
Отправить комментарий