gpt4 book ai didi

python - 在 Pandas 中组合两个数据框时的意外行为

转载 作者:行者123 更新时间:2023-11-28 18:50:48 25 4
gpt4 key购买 nike

这可能是一个错误,但也可能是我遗漏的 pandas 的微妙之处。我正在组合两个数据帧,但结果的索引未排序。奇怪的是,我从未见过单个 combine_first 实例无法维护之前排序的索引。

>>> a1
X Y
DateTime
2012-11-06 16:00:11.477563 8 80
2012-11-06 16:00:11.477563 8 63
>>> a2
X Y
DateTime
2012-11-06 15:11:09.006507 1 37
2012-11-06 15:11:09.006507 1 36
>>> a1.combine_first(a2)
X Y
DateTime
2012-11-06 16:00:11.477563 8 80
2012-11-06 16:00:11.477563 8 63
2012-11-06 15:11:09.006507 1 37
2012-11-06 15:11:09.006507 1 36
>>> a2.combine_first(a1)
X Y
DateTime
2012-11-06 16:00:11.477563 8 80
2012-11-06 16:00:11.477563 8 63
2012-11-06 15:11:09.006507 1 37
2012-11-06 15:11:09.006507 1 36

我可以重现,所以我很乐意接受建议。对正在发生的事情的猜测是最受欢迎的。

最佳答案

combine_first 函数使用index.union 对索引进行组合和排序。 index.union 文档字符串声明它只在可能的情况下进行排序,因此 combine_first 不一定会按设计返回排序结果。

对于非单调索引,index.union 尝试排序,但如果出现异常则返回未排序的结果。我不知道这是否是一个错误,但 index.union 甚至没有尝试对单调索引进行排序,例如您示例中的日期时间索引。

我在 GitHub 上开了一个问题,但我想您现在应该为任何日期时间索引执行 a2.combine_first(a1).sort_index()

更新:此错误现已在 GitHub 上修复

关于python - 在 Pandas 中组合两个数据框时的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13279690/

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