Порядок pandas барплот в алфавитном порядке без учета прописных и строчных букв - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь создать барплот из pandas .value_counts

 df[variable].value_counts(dropna=False, sort=False).sort_index(ascending=True).plot(kind='barh')

Однако эта сортировка учитывает, являются ли категории прописными и строчными:

т.е.

Этот список: [Plant, Animal, bacteria]

становится: [Animal, Plant, bacteria]

вместо: [Animal, bacteria, Plant]

Существует ли способ игнорирования верхнего и нижнего регистра, когда заказывать без изменения формата сюжета? Я все еще хочу сохранить строчные буквы бактерий.

Спасибо

1 Ответ

0 голосов
/ 05 февраля 2020

Используйте Index.argsort значений индекса нижнего регистра на Series.str.lower для заказа и изменения порядка на Series.iloc:

df = pd.DataFrame({'variable':['Plant','Animal','Animal','bacteria','bacteria', np.nan]})
s = df['variable'].value_counts(dropna=False, sort=False)
print (s)
NaN         1
Plant       1
bacteria    2
Animal      2
Name: variable, dtype: int64

s = s.iloc[s.index.str.lower().fillna('').argsort()]
print (s)
NaN         1
Animal      2
bacteria    2
Plant       1
Name: variable, dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...