使用size()函数保留出现的顺序

时间:2016-08-29 03:16:11

标签: python pandas numpy plot dataframe

我想在使用.size()函数时保留我的DataFrame的顺序。我的第一个DataFrame是通过选择较大的子集来创建的:

insert into #nodes (nodes) values 
('100161'),('100164'),('102226'),('100143'),('108942'),('106922'),('108949'),('107191'),
('100098'),('107182'),('107193'),('98646'),('100102'),('100105'),('103044'),('103293'),
('103296'),('103297'),('104178'),('103018'),('104145'),('103017'),('103019'),('108991'),
('108995'),('109000'),('103020'),('102121'),('103021'),('106284'),('103951'),('100117'),('102872'),
('102873'),('100125'),('101582'),('102234'),('103027'),('103028'),('102225'),('101574'),('106964'),
('106969'),('108956'),('109719'),('101581'),('102346'),('106997'),('107028'),('107030'),('107031'),
('107070'),('102347'),('107083'),('107084'),('107085'),('107086'),('103633'),('107124'),('100191'),
('100172'),('100204'),('104148'),('104163'),('100190'),('107180'),('109849'),('109852'),('110047'),
('107473'),('107502'),('100091'),('100096'),('106265'),('108346'),('108222'),('109382'),('107814'),
('107823'),('108167'),('109359'),('100171'),('103300'),('108268'),('108300'),('108860'),('108982'),
('102342'),('102344'),('100089'),('108675'),('108880'),('109341'),('109875'),('109877'),('109884'),
('108854'),('101912'),('102829'),('103317'),('104323'),('104324'),('104389'),('107239'),('108271'),
('108273'),('108275'),('108277'),('108279'),('108872'),('108885'),('108957'),('108983'),('109878'),
('109148'),('109279'),('109399'),('109443'),('109922'),('103318'),('109448'),('109452');

以下是DataFrame的示例:

enter image description here

使用此DataFrame,我会计算每个唯一“TEMPBIN_CONS”变量的出现次数。

df_South = df[df['REGION_NAME'] == 'South']

我想使用SORT列维护存在的顺序。我根据我想要的'TEMPBIN_CONS'变量在计数后出现的顺序创建了这个列。我似乎无法让它以正确的顺序出现。我尝试在South_Count上使用.sort_index()并且它不会改变groupby()创建的顺序。

最终,这是我修复我正在创建South_Count的条形图的轴排序的解决方案。因为订购很难阅读,并希望它按逻辑顺序出现。

供参考South_Count,随后我的条形图的轴出现在 这个顺序:

enter image description here

1 个答案:

答案 0 :(得分:2)

试试这个:

South_Count = df_South.groupby('TEMPBIN_CONS', sort=False ).size()

看起来您的数据已按字符串排序。