首页 > 解决方案 > 从具有两个级别的 MultiIndexed 数据框中选择第一个值

问题描述

我对 python 比较陌生,所以请原谅由于我的术语不好而可能引起的任何混淆。

无论如何,我目前坚持尝试为多索引数据帧的第 2 级的每个索引获取第一个值。df 有 2 个索引,级别 1 是“用户”,级别 2 是“试用”。'user' 和 'trial' 都是整数值,而 't' 是连续浮点值。

基本上我想为每个用户提取以下数据帧的第一个“t”值:df= dataframe in question

我用过df['user'].unique()and df['trial'].unique()(在做之前df.set_index(['user','trial']))发现有 1040 个独立用户和 97 个独立试用版。主要问题是不是每个用户都有相同的唯一试用号(即,用户 1 有试用号 5,而用户 2 没有,依此类推)。

有没有办法获得这些值,然后在一个类似的数据帧 df2 中编译它们,它也被“用户”和“试用”索引?

提前致谢!

标签: pythonpandasdataframemulti-index

解决方案


使用pd.drop_duplicates

df = df.reset_index()
df = df.drop_duplicates(subset=['user', 'trial'], keep='first')
df = df.set_index(['user', 'trial'])

(替换<column>为包含要排序的值的列的名称)


推荐阅读