gpt4 book ai didi

python - pandas 获取多索引发生变化的整数索引

转载 作者:太空宇宙 更新时间:2023-11-03 16:47:09 25 4
gpt4 key购买 nike

我有一个非常大的带有多重索引的数据框。我需要将一列传递给 C 来快速执行操作。对于此操作,我需要知道多索引在哪里更改值。由于这是一个大型数据框,我不想在 python 中迭代行或索引。一个小例子:

import numpy as np
import pandas as pd
a = np.array([['bar', 'one', 0, 0],
['bar', 'two', 1, 2],
['bar', 'one', 2, 4],
['bar', 'two', 3, 6],
['foo', 'one', 4, 8],
['foo', 'two', 5, 10],
['bar', 'one', 6, 12],
['bar', 'two', 7, 14]], dtype=object)
df = pd.DataFrame(a, columns=['ix0', 'ix1', 'cd0', 'cd1'])
df.sort_values(['ix0', 'ix1'], inplace=True)
df.set_index(['ix0', 'ix1'], inplace=True)

数据框如下所示:

In [7]: df
Out[7]:
cd0 cd1
ix0 ix1
bar one 0 0
one 2 4
one 6 12
two 1 2
two 3 6
two 7 14
foo one 4 8
two 5 10

现在我想要一个数组或列表来显示多索引中的值发生变化的位置。即整数索引,其中 (bar, one) 更改为 (bar, Two),(bar, Two) 更改为 (foo, one),等等。

为了能够构建分层输出,该数据似乎必须存在于索引中。有办法实现吗?

我正在寻找的示例输出是:[0, 3, 6, 7]。

谢谢

最佳答案

您可以将np.uniquereturn_index=True一起使用:

In [69]: uniques, indices = np.unique(df.index, return_index=True)

In [70]: indices
Out[70]: array([0, 3, 6, 7])

关于python - pandas 获取多索引发生变化的整数索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36212607/

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