这是一个多索引数据帧示例:
days = ['Day 1', 'Day 1', 'Day 1', 'Day 2', 'Day 2', 'Day 2']
meals = [1,2,3,1,2,3]
hier_index = pd.MultiIndex.from_tuples(list(zip(days, meals)))
arr_5 = np.random.randint(500, 700, size=(6, 2))
df = pd.DataFrame(arr_5, hier_index, ['M', 'F'])
print(df)
输出:
M F
Day 1 1 519 582
2 686 613
3 535 537
Day 2 1 516 602
2 607 522
3 662 637
使用loc:
df.loc['Day 1']
使用xs:
df.xs('Day 1')
什么有更好的性能
我知道以前有人问过这个问题,但7年来一直没有得到答案Other Stack overflow question
让我们看一些具体数据的标杆结果进行比较:
.loc
vs.xs
是152µsvs142µs对于6行数据集,
.xs
大约快7%让我们比较原始大小的10000x数据大小:
.loc
vs.xs
为1.43毫秒vs1.37毫秒对于60000行的数据集,
.xs
大约快4.3%结论
基于一个非常简单的基准测试结果,粗略的结论是,它们的性能大小大致相同。用
.xs
稍微快一点(几%的差异)相关问题 更多 >
编程相关推荐