我在带有html文件的表上使用for循环进行迭代,我在变量name
,gene_name_1
,value1
,gene_name_2
,{中拥有以下值{1}}在第一次迭代中。
value2
和keyX
是字典的一部分,但我不知道每次迭代有多少个键和值。
我的想法是使用一个看起来或多或少的字典:
valueX
但是现在我意识到字典的值会在每次循环迭代中改变,所以在下一个循环中它可能看起来像这样:
d = {'gene_name_1': 2, 'gene_name_2': 5}
所以我不太确定字典是否是最好的数据结构:
我想要获得的是大熊猫数据框,它或多或少看起来像这样。
d = {'gene_name_1': 3, 'gene_name_2': 0, 'gene_name_3': 9}
只是为了澄清:0表示没有出现密钥的名称。
我的问题是,我不知道列名或列数。我想从一个空的数据框开始,但我不确定这是否是最好的方法。
如何从不知道名称或列数的数据框开始?
我希望这是可以理解的,如果我应该以某种方式澄清,请告诉我。
答案 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