如何将数据帧附加到循环内的现有数据帧

2024-04-19 06:00:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python中创建了一个名为middle_dataframe的简单数据帧,它看起来像这样,只有一行数据: display of the existing dataframe 我想把循环中每次生成的新数据帧附加到现有的数据帧上。这是我的程序:

    k = 2
    for k in range(2, 32021):
        header = whole_seq_data[k]
        if header.startswith('>'):
            id_name = get_ucsc_ids(header)
            (chromosome, start_p, end_p) = get_chr_coordinates_from_string(header)
        if whole_seq_data[k + 1].startswith('[ATGC]'):
            seq = whole_seq_data[k + 1]
        df_temp = pd.DataFrame(
            {
                "ucsc_id":[id_name],
                "chromosome":[chromosome],
                "start_position":[start_p],
                "end_position":[end_p],
                "whole_sequence":[seq]
            }
        )
        middle_dataframe.append(df_temp)
        k = k + 2

我在for循环中的迭代似乎很好,在使用正则表达式之后,我检查了存储正确值的变量。但是中间的数据帧没有任何变化。我不知道为什么。你知道吗


Tags: 数据nameidmiddledataframefordataif
1条回答
网友
1楼 · 发布于 2024-04-19 06:00:46

DataFrame.append方法返回追加的结果,而不是原地追加(link to the official docs on ^{})。解决方法应该是替换该行:

        middle_dataframe.append(df_temp)

有了这个:

    middle_dataframe = middle_dataframe.append(df_temp)

根据如何处理数据,您可能还需要传入参数ignore_index=True。你知道吗

docs警告说,一次将一行附加到一个数据帧可能比构建一个python列表并一次将其转换为一个数据帧更需要计算。如果你目前的方法对于你的目的来说太慢了,那就需要考虑一下了。你知道吗

相关问题 更多 >