我想獲得一個數據框中一個變量的所有不同或唯一值的列表,該列表與該數據框中另一個變量的特定值一致。熊貓/ Python相當於Stata的「levelsof」
在Stata我會使用類似:
levelsof(ID1) if ID2==i
如何在Python這樣做呢?
我想獲得一個數據框中一個變量的所有不同或唯一值的列表,該列表與該數據框中另一個變量的特定值一致。熊貓/ Python相當於Stata的「levelsof」
在Stata我會使用類似:
levelsof(ID1) if ID2==i
如何在Python這樣做呢?
斯塔塔的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])
說你的列ID1
和ID2
和數據幀是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
究竟是什麼)。
stata/levelsof = pandas /獨特 – JohnE
謝謝,@JohnE
如果您認爲它已回答了您的問題(這裏以及您之前詢問過的其他問題),請務必接受其中一個答案。這向所有人表明問題是否仍然存在,以及是否需要進一步的答案。 – JohnE