如何在以前不知道列时填充pandas数据框

时间:2018-03-06 11:49:25

标签: python pandas

我在带有html文件的表上使用for循环进行迭代,我在变量namegene_name_1value1gene_name_2,{中拥有以下值{1}}在第一次迭代中。

value2keyX是字典的一部分,但我不知道每次迭代有多少个键和值。

我的想法是使用一个看起来或多或少的字典:

valueX

但是现在我意识到字典的值会在每次循环迭代中改变,所以在下一个循环中它可能看起来像这样:

d = {'gene_name_1': 2, 'gene_name_2': 5}

所以我不太确定字典是否是最好的数据结构:

我想要获得的是大熊猫数据框,它或多或少看起来像这样。

d = {'gene_name_1': 3, 'gene_name_2': 0, 'gene_name_3': 9}

只是为了澄清:0表示没有出现密钥的名称。

我的问题是,我不知道列名或列数。我想从一个空的数据框开始,但我不确定这是否是最好的方法。

如何从不知道名称或列数的数据框开始?

我希望这是可以理解的,如果我应该以某种方式澄清,请告诉我。

1 个答案:

答案 0 :(得分:1)

我认为您需要创建dict的列表并将其传递给DataFrame构造函数,最后将NaN替换为0 fillna

d = {'gene_name_1': 2, 'gene_name_2': 5}
d1 = {'gene_name_1': 3, 'gene_name_2': 0, 'gene_name_3': 9}

#use loop
L = [d, d1]

df = pd.DataFrame(L).fillna(0)
print (df)
   gene_name_1  gene_name_2  gene_name_3
0            2            5          0.0
1            3            0          9.0