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

问题描述 投票:1回答:1

我在带有html文件的表上使用for循环进行迭代,并且在第一次迭代中我在变量namegene_name_1value1gene_name_2value2中具有以下值。

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

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

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代​​表那些没有出现密钥的名称。

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

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

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

python pandas
1个回答
1
投票

我想你需要创建dicts列表并将其传递给DataFrame构造函数,最后用NaN0替换为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
© www.soinside.com 2019 - 2024. All rights reserved.