gpt4 book ai didi

python - 我怎样才能有效地判断一个索引是否是一个完整的笛卡尔积

转载 作者:行者123 更新时间:2023-11-28 22:27:14 24 4
gpt4 key购买 nike

考虑数据框 df

df = pd.DataFrame([[1, 2], [3, 4], [5, 6]], [list('abb'), list('xxy')])

print(df)

0 1
a x 1 2
b x 3 4
y 5 6

df 的索引不是笛卡尔积。我可以生成一个

cp = pd.MultiIndex.from_product(df.index.levels, df.index.names)

但确定现有索引是否“完整”或所有级别的所有唯一值是否都存在的有效方法是什么?


这对我如何选择 unstack 系列或数据框有影响。如果索引已排序并且是完整的笛卡尔积,那么我可以使用 numpy 技术更有效地 unstack 正如@Divakar here 所见.

最佳答案

您可以采用分析方法来确定您的索引是否恰好是笛卡尔积,方法是检查索引是否唯一且元素数量正确:

df.index.is_unique and (len(df) == np.prod(df.index.levshape))

这不会涵盖您的索引包含笛卡尔积的情况(即具有重复索引的笛卡尔积)。不过,您可以混合使用 drop_duplicates 来处理这种情况,方法如下:

len(df.index.drop_duplicates()) == np.prod(df.index.levshape)

关于python - 我怎样才能有效地判断一个索引是否是一个完整的笛卡尔积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44143750/

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