Python 选择pivot_表的子集

Python 选择pivot_表的子集,python,pandas,pivot-table,Python,Pandas,Pivot Table,关于这个话题,这里有几个问题,但没有一个对我有帮助。下面是我想要的一个简单版本: 这是感兴趣的csv文件: 我正在创建透视表,如下所示: piv = pd.read_csv("test.csv",delimiter = "\s+").pivot_table('z','x','y') 这就回来了 y 0.0 1.0 1.3 2.0 x 0.0 1.0 5.0 NaN 4.0 1.0 3.0 4.0 NaN 6.0 1.5 NaN NaN 7.0 NaN 2.0

关于这个话题,这里有几个问题,但没有一个对我有帮助。下面是我想要的一个简单版本:

这是感兴趣的csv文件:

我正在创建透视表,如下所示:

piv = pd.read_csv("test.csv",delimiter = "\s+").pivot_table('z','x','y')
这就回来了

y    0.0  1.0  1.3  2.0
x
0.0  1.0  5.0  NaN  4.0
1.0  3.0  4.0  NaN  6.0
1.5  NaN  NaN  7.0  NaN
2.0  3.0  5.0  NaN  7.0
我希望找到此数组的一个片段作为pivot_表,例如:

y    1.3  2.0
x
0.0  NaN  4.0
1.0  NaN  6.0
基于x和y值。我想也包括NaN,以便稍后对其进行处理。非常感谢你的帮助

编辑:将问题更新为更具体的问题

我希望提取一个pivot表,该表的值由列“z”表示,并由“x”和“y”索引,条件是:

  • 任意xmin和xmax之间的所有x值
  • 任意ymin和ymax之间的所有y值
从上面定义的piv,我想做如下操作:

piv.loc[(piv.y <= 2.0) & 
(piv.y >= 1.3) & 
(piv.x >= 0.0) & 
(piv.x <= 1.2)]
piv.loc[(piv.y=1.3)和
(piv.x>=0.0)和

(piv.x当我复制dataframe时,列是字符串,行是浮点数。
将列获取为float

df.columns = df.columns.astype(float)
现在你可以


谢谢,但是如果有更多的列,这不会失败吗?另外,我如何选择一个范围?(例如,所有x在[1,3]和y在[0,2]之间的值)我无法理解您想要什么?我已经更新了问题,使其更具体。这有帮助吗?是的,这几乎就是我想要的!再次更新了我的问题(抱歉)。剩下的唯一一件事是:如何确保索引切片在我想要的特定列上进行?编辑:nvm,它可以工作。我以为“df”已经不是指透视表了。
df.loc[pd.IndexSlice[0:1], pd.IndexSlice[1.3:2]]