gpt4 book ai didi

python - 分配给 MultiIndex 切片

转载 作者:行者123 更新时间:2023-11-28 20:46:06 27 4
gpt4 key购买 nike

In [332]: midx = MultiIndex(levels=[['zero', 'one'], ['x','y']],
.....: labels=[[1,1,0,0],[1,0,1,0]])
.....:

In [333]: df = DataFrame(randn(4,2), index=midx)

In [334]: print(df)
0 1
one y 0.313092 -0.588491
x 0.203166 1.632996
zero y -0.557549 0.126204
x 1.643615 -0.067716

我想将第 0 列中的元素设置为 nan,其中 level 1 == y。使用 .xs() 我会这样做:df.xs('y', level=1)[0] = np.nan这显然是行不通的。类似 df.ix[(:, 'y'), 0] = np.nan 的内容当然也是无效的。

最佳答案

<= 0.13.1

In [51]: df = DataFrame(randn(4,2), index=midx)

In [52]: df.loc[df.index.get_loc_level('y',level=1)[0],0] = np.nan

In [53]: df
Out[53]:
0 1
one y NaN -0.260289
x 0.122913 0.728180
zero y NaN -0.010145
x -0.532615 0.758914

[4 rows x 2 columns]

在 0.14 中,您能够使用新的语法,参见:https://github.com/pydata/pandas/pull/6134

类似于:

df.loc[(slice(None),'y'),0] = np.nan

应该可以。

关于python - 分配给 MultiIndex 切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21539260/

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