gpt4 book ai didi

python - 从动态字典创建矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 13:19:22 25 4
gpt4 key购买 nike

我想创建一个矩阵。

输入:

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, 'g': 1},
{'p': 3, 'a': 5, '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, 0, 0, 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, 0, 1, 0], [5, 4, 0, 3]]

最佳答案

您可以使用集合理解来生成key_map

key_map = list({data for row in data for data in row})

关于python - 从动态字典创建矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19648799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com