目前,我有一个这样的字典:{'axin': ['GAUAUG', 'AAAUGC', 'AAAUGC', 'GUCAUG', 'UUUGAU', 'UUUGAU'], 'hedgehog-protein': ['ACUGGC', 'GUCAUG', 'UUUGAU'], 'pangolin': ['GAACAC', 'GAAAGA', 'UUUGAU', '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
我发现的最相似的问题是Create a pandas dataframe of counts,但是每个键的值类型不同,因此在键之间并不常见。另外,由于每个键的值列表的长度都不同,因此ValueError是我一直遇到的问题。
答案 0 :(得分:4)
在字典理解中使用Counter
,然后替换缺失值并转换为整数:
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