我有柜台字典。计数器都具有相同的“键”,但它们具有不同的值(即不同的计数)。如何有效地将所有这些计数器转换为pandas数据帧,以便数据帧的每一行代表一个键,每一列代表一个计数器,单元格包含该键的计数值?
注意:每个计数器都与一个ID相关联,我想将其保留为列标签
示例:
l = {'Name' : Counter({'a': 10, 'b':20})}, {'Name2' : Counter({'a':100, 'b':200})}
我如何获得:
Name Name2
a 10 100
b 20 200
答案 0 :(得分:0)
您可以使用以下方法解决您的问题:
import pandas as pd
from collections import Counter
l = {'Name' : Counter({'a': 10, 'b':20})}, {'Name2' : Counter({'a':100, 'b':200})}
columns, data = zip(*[(key, value) for elem in l for key, value in elem.items()])
df = pd.DataFrame(data=list(data)).T.set_axis(columns, axis=1, inplace=False)
print(df)
# Name Name2
# a 10 100
# b 20 200