我有一堆数据帧,其结构如下:
df = pd.DataFrame(
[[1, 'A', 10], [2, 'A', 20], [3, 'A', 30],
[1, 'B', 20], [2, 'B', 20], [3, 'B', 10],
[1, 'M', 20], [2, 'M', 30], [3, 'M', 30]],
columns=['foo', 'bar', 'buzz']
)
数据框最初通过列bar
和foo
进行排序,如下所示:
df.sort_values(['bar', 'foo'])
我需要按照
foo
和 bar
排序 df
。显而易见的解决方案是:df.sort_values(['foo', 'bar'])
这让我
foo bar buzz
0 1 A 10
3 1 B 20
6 1 M 20
1 2 A 20
4 2 B 20
7 2 M 30
2 3 A 30
5 3 B 10
8 3 M 30
但是实际数据框包含大约 500,000 行,我有大约 3,000 个单独的数据框需要处理。
我想知道是否有更好、更高效的解决方案,可以考虑到数据框已经预先排序的事实?
foo
列对应于时间,而bar
是一个股票符号。我需要它来优化基于时间的查询的Parquet文件。 - taras