Pandas/Python中类似于Stata的"levelsof"函数的等效方法是什么?

3

我希望能够获取数据框中与另一个变量的特定值重合的某个变量的所有不同或唯一值列表。

在Stata中,我会使用类似以下的语句:

levelsof(ID1) if ID2==i

我该如何在Python中实现这个?


1
请务必接受其中一个答案,如果您认为它已经回答了您的问题(无论是在这里还是您过去提出的其他问题)。这向每个人发出信号,表明问题是否仍然开放,以及是否需要进一步的答案。 - JohnE
2个回答

3

Stata的levelsof等同于pandas的unique()。它们都会返回一个唯一或不同的值数组。

>>> df=pd.DataFrame({ 'id1':[0,0,1,1,2,2], 
                      'id2':[5,5,5,6,6,6] })

   id1  id2
0    0    5
1    0    5
2    1    5
3    1    6
4    2    6
5    2    6

>>> df.loc[ df['id2'] == 5, 'id1' ].unique()

array([0, 1])

2
假设您的列名为 ID1ID2,数据框为df,那么:
df.ID1[df.ID2 == i] 

当第二个列的值为i时,将提供第一列的所有值。

接下来,你可以执行

df.ID1[df.ID2 == i].value_counts()

获取分解:

df.ID1[df.ID2 == i].unique()

获取唯一值,

df.ID1[df.ID2 == i].describe()

获取描述等信息(我不知道levelsof具体是什么意思)。


谢谢,@JohnE <填充> - Ami Tavory

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接