【发布时间】:2020-12-06 18:51:45
【问题描述】:
我有嵌套字典events,我想将其放入数据框df,以便以后可以进行箱线图。我面临的主要问题是列表的长度不同。
我的实际字典的较小版本如下所示:
events = { 'gene1' : {'n': [1, 2, 3], 't': [4, 5, 6, 7, 8, 9, 10]},
'gene2' : {'n': [1, 2, 3, 4], 't': [5, 6, 7, 8, 9, 10, 11, 'nan', 12]}}
我正在尝试将其放入数据框中,但我正在努力处理不同大小的列表。我的代码如下所示:
df = pd.DataFrame(columns=['gene', 'Normal', 'Tumor'])
for key, value in events.items():
gene_df = pd.DataFrame({'gene':[key]*len(value['t']),
'Normal':value['n'],
'Tumor':value['t']})
df = df.append(gene_df)
我得到错误:
ValueError: arrays must all be same length
我在nan 的填充列表解决方案中看到了其他问题,但我不确定如何将其应用于嵌套字典的内部字典值。
想要的输出看起来像这样:
In []: df
Out[]:
gene Normal Tumor
0 gene1 1 4
1 gene1 2 5
2 gene1 3 6
3 gene1 nan 7
4 gene1 nan 8
5 gene1 nan 9
6 gene1 nan 10
7 gene1 nan nan
8 gene1 nan nan
0 gene2 1 5
1 gene2 2 6
2 gene2 3 7
3 gene2 4 8
4 gene2 nan 9
5 gene2 nan 10
6 gene2 nan 11
7 gene2 nan nan
8 gene2 nan 12
建议?
【问题讨论】:
-
t10之后的两个nan行之间的逻辑是什么?
标签: python pandas dictionary for-loop