我有一个非常大的DataFrame(超过10米行),这是它的列的简化版本:
Date Owner <Other Columns...>
我查询它,使得Date在某个范围内,所有者在某个列表中:
df[(df.Date > start_date) & (df.Date < end_date) & df.Owner.isin(relevant_owners)]
这是我的代码中最耗时的部分。
我已经尝试将相关用户从列表更改为设置,因为我认为查找时间为o(1)会提高性能 - 但它实际上使其大约慢了10倍。
通过使用字典而不是DataFrame来存储数据,我设法获得了30%的性能提升,但如果我能提高数据效率,我希望保留DataFrame。