我在带有html文件的表上使用for循环进行迭代,并且在第一次迭代中我在变量name
,gene_name_1
,value1
,gene_name_2
,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}
所以我不太确定字典是否是最好的数据结构:
我想要获得的是一个看起来或多或少像这样的熊猫数据框架。
| gene_name_1 | gene_name_2 | gene_name_3 | ...
organism1 | 2 | 5 | 0 | ...
organism2 | 3 | 0 | 9 | ...
...
只是为了澄清:0代表那些没有出现密钥的名称。
我的问题是,我不知道列名称或列数。我想从一个空的数据框开始,但我不确定这是否是最好的方法。
如何从一个我不知道名称或列数的数据框开始?
我希望这是可以理解的,如果我要以某种方式澄清,请告诉我。
我想你需要创建dict
s列表并将其传递给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