我希望得到一个数据框中一个变量的所有不同或唯一值的列表,这些值与该数据帧中另一个变量的特定值一致。
在Stata我会使用类似的东西:
levelsof(ID1) if ID2==i
我如何在Python中执行此操作?
答案 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)
说明您的列是ID1
和ID2
,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
究竟是什么)。