python – 从动态字典创建一个矩阵
发布时间:2020-12-20 11:30:59 所属栏目:Python 来源:网络整理
导读:我想创建一个矩阵. 输入: data = [ {'a': 2,'g': 1},{'p': 3,'a': 5,'cat': 4} ...] 输出: a p cat g1st 2 0 0 12nd 5 3 4 0 这是我的代码.但是,当数据量巨大时,我认为它并不聪明且非常慢. 有什么好方法可以做到这一点吗? 谢谢. data = [ {'a': 2,'cat':
我想创建一个矩阵.
输入: data = [ {'a': 2,'g': 1},{'p': 3,'a': 5,'cat': 4} ... ] 输出: a p cat g 1st 2 0 0 1 2nd 5 3 4 0 这是我的代码.但是,当数据量巨大时,我认为它并不聪明且非常慢. 有什么好方法可以做到这一点吗? 谢谢. data = [ {'a': 2,'cat': 4} ] ### Get keyword map ### key_map = set() for row in data: key_map = key_map.union(set(row.keys())) key_map = list(key_map) # ['a','p','g','cat'] ### Create matrix ### result = [] for row in data: matrix = [0] * len(key_map) for k,v in row.iteritems(): matrix[key_map.index(k)] = v result.append(matrix) print result # [[2,1],[5,3,4,0]] 编辑 通过@wwii建议.使用Pandas看起来不错: from pandas import DataFrame result = DataFrame(data,index=range(len(data))) print result.fillna(0,downcast=int).as_matrix().tolist() # [[2,1,0],3]] 解决方法
我使用Pandas数据帧得到了第二个答案.但是,我的代码应该比你的代码简单一些.
In [1]: import pandas as pd In [5]: data = [{'a': 2,'cat': 4}] In [6]: df = pd.DataFrame(data) In [7]: df Out[7]: a cat g p 0 2 NaN 1 NaN 1 5 4 NaN 3 In [9]: df = df.fillna(0) In [10]: df Out[10]: a cat g p 0 2 0 1 0 1 5 4 0 3 我在iPython中编写了我的编码,我强烈推荐! 要保存到csv,只需使用额外的代码行: df.to_csv('filename.csv') (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 同时为Python 2.7和3.6安装virtualenvwrapper
- python – 在np.where子句之后,在pandas中无法识
- python代码检查工具pylint 让你的python更规范
- Python 爬虫杂记 - Chrome Headless
- Python selenium:使用已经打开并使用登录凭据登
- python – 根据另一个数组中的数据对numpy数组进
- Django flatpages和图像
- python – 复杂的django查询,包括一对一模型
- python – paramiko.ssh_exception.ProxyCommand
- 有没有办法在python中的特定索引附加/扩展列表与
热点阅读