gpt4 book ai didi

python - 如何通过 Pandas 数据透视表进行过滤

转载 作者:太空宇宙 更新时间:2023-11-04 05:43:39 25 4
gpt4 key购买 nike

我有一个从 pandas(DataFrame 对象)创建的数据透视表。

目前,我有多个索引,我希望能够过滤其中的一些索引。阐明这是数据透视表的样子。

enter image description here

其中有 1000 多个。我想要做的是获取 opt_step 为 1、cf 为 pv_area_cost1a 且优化为 MANHATTAN 的所有实例。最终目标是能够绘制出某些实例的迭代次数与成本的关系图。

数据透视表称为 pt。我试过 pt.index.get_level_values['pv_area_cost1a'] 并且在高级索引中阅读了整个页面但无济于事。

最佳答案

首先,创建一个多索引数据框:

df = pd.DataFrame({'i1': [1, 1, 1, 1], 'i2': [2, 2, 3, 3], 'i3': [4, 5, 4, 5], 'v1': [10] * 4, 'v2': [20] * 4}).set_index(['i1', 'i2', 'i3'])
>>> df
v1 v2
i1 i2 i3
1 2 4 10 20
5 10 20
3 4 10 20
5 10 20

对我来说,对这种类型的数据帧进行切片的最简单方法是结合使用 .locIndexSlice。因此,要对 i2=3i3=5 处的上述 df 进行切片:

>>> df.loc[pd.IndexSlice[:, 3, 5], :]

v1 v2
i1 i2 i3
1 3 5 10 20

IndexSlice 中的: 表示选择i1 的所有行。 loc 函数中的最后一个 : 表示选择数据帧中的所有列(v1v2)。

关于python - 如何通过 Pandas 数据透视表进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33003547/

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