Pandas / Python相当于Stata" levelof"

时间:2016-03-06 15:16:41

标签: python pandas stata

我希望得到一个数据框中一个变量的所有不同或唯一值的列表,这些值与该数据帧中另一个变量的特定值一致。

在Stata我会使用类似的东西:

levelsof(ID1) if ID2==i

我如何在Python中执行此操作?

2 个答案:

答案 0 :(得分:3)

Stata的levelsof相当于熊猫的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])

答案 1 :(得分:2)

说明您的列是ID1ID2,DataFrame是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究竟是什么)。