Python 3.x 计算字典中每个键的每个值的频率,并将计数信息放入数据帧中

Python 3.x 计算字典中每个键的每个值的频率,并将计数信息放入数据帧中,python-3.x,pandas,dataframe,dictionary,count,Python 3.x,Pandas,Dataframe,Dictionary,Count,目前我有一本这样的字典:{'axin':['gaaug','AAAUGC','AAAUGC','GUCAUG','uugau','uugau'],'hedgehog protein':['ACUGGC','GUCAUG','uugau'],'pangolin':['GAACAC','GAAAGA','uugau','AAUACU'] 我想创建一个数据帧,每个键作为一列,每个值作为行名(反之亦然,其实并不重要),同时还计算每个键上每个值的出现次数。 例如,输出的前几行是: axin

目前我有一本这样的字典:
{'axin':['gaaug','AAAUGC','AAAUGC','GUCAUG','uugau','uugau'],'hedgehog protein':['ACUGGC','GUCAUG','uugau'],'pangolin':['GAACAC','GAAAGA','uugau','AAUACU']

我想创建一个数据帧,每个键作为一列,每个值作为行名(反之亦然,其实并不重要),同时还计算每个键上每个值的出现次数。 例如,输出的前几行是:

        axin hedgehog-protein pangolin 
GAUAUG  1    0                0        
AAAUGC  2    0                0        
GUCAUG  1    1                1
UUUGAU  2    1                1        
ACUGGC  0    1                0

我发现的最相似的问题是,它们对每个键都有不同类型的值,因此在各个键之间并不常见。此外,由于每个键的值列表长度不同,ValueError是我经常遇到的问题。

在字典理解中使用
计数器
,然后替换缺少的值并转换为整数:

d = {'axin': ['GAUAUG', 'AAAUGC', 'AAAUGC', 'GUCAUG', 'UUUGAU', 'UUUGAU'], 
     'hedgehog-protein': ['ACUGGC', 'GUCAUG', 'UUUGAU'],  
     'pangolin': ['GAACAC', 'GAAAGA', 'UUUGAU', 'AAUACU']}

from collections import Counter

df = pd.DataFrame({k: Counter(v) for k, v in d.items()}).fillna(0).astype(int)
print (df)
        axin  hedgehog-protein  pangolin
AAAUGC     2                 0         0
AAUACU     0                 0         1
ACUGGC     0                 1         0
GAAAGA     0                 0         1
GAACAC     0                 0         1
GAUAUG     1                 0         0
GUCAUG     1                 1         0
UUUGAU     2                 1         1

谢谢,非常简单的解决方案@jezrael如何将键转换为行,将值转换为列?@dondapati-使用
df=pd.DataFrame.from_dict({k:Counter(v)表示k,v表示d.items()},orient='index')。fillna(0)。astype(int)