Python 按字母顺序排列条形图,忽略大小写
我正在尝试从pandas.value\u计数创建条形图Python 按字母顺序排列条形图,忽略大小写,python,python-3.x,pandas,matplotlib,Python,Python 3.x,Pandas,Matplotlib,我正在尝试从pandas.value\u计数创建条形图 df[variable].value_counts(dropna=False, sort=False).sort_index(ascending=True).plot(kind='barh') 但是,此排序会考虑类别是否为大写和小写: i、 e 此列表:[植物、动物、细菌] 变成:[动物、植物、细菌] 而不是:[动物、细菌、植物] 在排序时是否有一种方法可以忽略大写和小写,而不更改绘图中的格式?我仍然想保持细菌的低水平 感谢您对orde
df[variable].value_counts(dropna=False, sort=False).sort_index(ascending=True).plot(kind='barh')
但是,此排序会考虑类别是否为大写和小写:
i、 e
此列表:[植物、动物、细菌]
变成:[动物、植物、细菌]
而不是:[动物、细菌、植物]
在排序时是否有一种方法可以忽略大写和小写,而不更改绘图中的格式?我仍然想保持细菌的低水平
感谢您对order和reorder by使用小写索引值:
我真的不知道如何使用它,是否应该设置s=df[variable]。value_counts(dropna=False,sort=False)。sort_index(升序=True)?这会给出一个错误:argsort返回结果中的第4688行。argsort(*args,**kwargs)TypeError:“@Agustin-我认为缺少值,需要删除它吗?还是数数?答案已编辑。
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