首页 > 解决方案 > 熊猫创建大数据框并将其填充到循环中

问题描述

我已经创建了我的数据框的列

id=[f'GeneID_region_{i}' for i in range(43)]
value=[f'GeneValue_region_{i}' for i in range(43)]


lst=[]
for i in range(43):
    lst.append(id[i])
    lst.append(value[i])

df = pd.DataFrame(lst)
df = df.T

现在看起来像这样:

df
Out[158]: 
                0                   1   ...                84                   85
0  GeneID_region_0  GeneValue_region_0  ...  GeneID_region_42  GeneValue_region_42

[1 rows x 86 columns]

GeneID_region... 是我的列,现在我想逐行填充列。但我认为我还没有将我的行定义为行,因为我不能这样做:

df.GeneID_region_0
Traceback (most recent call last):

  File "<ipython-input-159-2760f7e0dd61>", line 1, in <module>
    df.GeneID_region_0

  File "/home/anja/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py", line 5179, in __getattr__
    return object.__getattribute__(self, name)

AttributeError: 'DataFrame' object has no attribute 'GeneID_region_0'

有人可以帮助我如何正确地做到这一点吗?

结果应如下所示:

我有一个尺寸为 43x25520 的 numpy 数组。我想在'GeneID_region0'列中有25520个值,在'GeneValue_region0'列中有25520个值等等..所以最后我想要一个尺寸为(25520,86)的熊猫框架

标签: pythonpandasdataframe

解决方案


我猜你想要的是列名的 GeneID_region_n 等,然后用数据填充你的 df。您可以这样做(使用 0 作为假数据,因为您没有指定),如下所示:

id=[f'GeneID_region_{i}' for i in range(43)]
value=[f'GeneValue_region_{i}' for i in range(43)]
lst=[]
for i in range(43):
    lst.append(id[i])
    lst.append(value[i])
df = pd.DataFrame([[0 for i in range(43+43)]],columns=lst)

推荐阅读