gpt4 book ai didi

python - 高效 append 到 Pandas 数据帧

转载 作者:行者123 更新时间:2023-11-28 16:30:11 24 4
gpt4 key购买 nike

我看到数据帧有一个 .pop方法但.append返回一个新对象(与列表不同)。在我添加行时不断地为数据帧重新分配内存可能效率低下(另请参阅 this answer 测试预分配空间以回复 similar question )。但我需要复制(然后修改)一些行,正如我在 another question 中概述的那样(示例在下面重复)——将行 append 到数据框末尾或以其他方式有效吗?

我想从这里得到(关注 id 2):

id                    start                     end
1 2011-01-01 10:00:00 2011-01-08 16:03:00
2 2011-01-28 03:45:00 2011-02-04 15:22:00
3 2011-03-02 11:04:00 2011-03-05 05:24:00

对此:

id                    start                     end     month      stay
1 2011-01-01 10:00:00 2011-01-08 16:03:00 2011-01 7
2 2011-01-28 03:45:00 2011-01-31 23:59:59 2011-01 4
2 2011-02-01 00:00:00 2011-02-04 15:22:00 2011-02 4
3 2011-03-02 11:04:00 2011-03-05 05:24:00 2011-03 3

最佳答案

您绝对不希望一次插入一行。您最终会在每次插入时制作数据框的完整副本。如果对于任何给定的行,您将最多 append 一行,您可以执行以下步骤:

1) 从源加载数据帧

2) 将未初始化的数据帧 append 到原始数据帧的末尾,长度相同

3) 从原始数据帧的末尾(现在是中间)开始,将行复制到新位置,以便每个原始行之间有一个额外的行(索引 10 -> 索引 20,索引 9 -> 索引 18)等)

4) 将所有奇数索引归零

5) 运行您的算法以根据需要用您的数据填充空白行

6) 最后,删除所有空白(全0)行

这将具有大约 4 个副本的有效效率,比每个插入一个副本要好得多。

关于python - 高效 append 到 Pandas 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32746248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com