я нуждался в сортировке стабильный индекс для DataFrames, когда у меня была эта проблема:панды серии sort_index() не работает с любезного = «слиянием»
В тех случаях, когда DataFrame превращается в череду (когда только один матчи столбцов выбор), аргумент вида возвращает ошибку. Смотрите пример:
import pandas as pd
df_a = pd.Series(range(10))
df_b = pd.Series(range(100, 110))
df = pd.concat([df_a, df_b])
df.sort_index(kind='mergesort')
со следующей ошибкой:
----> 6 df.sort_index(kind='mergesort')
TypeError: sort_index() got an unexpected keyword argument 'kind'
Если DataFrames (более выбран один столбец), работает нормально слияние.
РЕДАКТИРОВАТЬ:
При выборе одного столбца из DataFrame, например:
import pandas as pd
import numpy as np
df_a = pd.DataFrame(np.array(range(25)).reshape(5,5))
df_b = pd.DataFrame(np.array(range(100, 125)).reshape(5,5))
df = pd.concat([df_a, df_b])
следующее возвращает ошибку:
df[0].sort_index(kind='mergesort')
... так как выбор отброшенное к серии pandas, и, как указано, в документации pandas.Series.sort_index содержится ошибка.
Однако
df[[0]].sort_index(kind='mergesort')
работает нормально, так как его тип продолжает оставаться DataFrame.
да, я знаю. Мне нужен общий sort_index, который работал как для DataFrames, так и для Series, и это было стабильно. Благодаря! –
@HNMusac, почему вы хотите явно указать параметр 'kind = 'mergesort''? – MaxU
По умолчанию «quicksort» нестабильна! Он может изменить первоначальный порядок записей с одним и тем же ключом. Благодаря! –