是否从字典索引顺序创建DataFrame(&A)? [英] DataFrame creation from dict & index order?

查看:28
本文介绍了是否从字典索引顺序创建DataFrame(&A)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是最近下载的蟒蛇和Python3.7.1&;Pandas 0.23.4

pandas doc表示:

如果数据是字典,并且未传递索引,则系列索引将按字典的插入顺序排序

我从未传递索引的字典实例化了一个 pandas DataFrame:

newspapers = {'Jim':{'Mon':15,'Tue':17,'Wed':21,'Thu':16,'Fri':19},
     'Tony':{'Mon':8,'Tue':15,'Wed':11,'Thu':16,'Fri':13}, 
     'Colin':{'Mon':13,'Tue':17,'Wed':19,'Thu':17,'Fri':20} 
    }
newspapers_df = pd.DataFrame(newspapers)

为什么不按插入顺序显示,星期一、星期二、星期三、清华、星期五?:

print(newspapers_df)

输出:

      Jim  Tony  Colin
Fri   19    13     20
Mon   15     8     13
Thu   16    16     17
Tue   17    15     17
Wed   21    11     19

推荐答案

可以使用numpy.argsort()

进行相同的排序
days_dict = {'Mon':0, 'Tue':1,'Wed':2,'Thu':3,'Fri':4,'Sat':5,'Sun':6}
df = pd.DataFrame(newspapers).reset_index()
df.iloc[np.argsort(df['index'].map(days_dict)),:]

这篇关于是否从字典索引顺序创建DataFrame(&A)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆