【问题标题】:Pandas/Python equivalent of Stata's "levelsof"Pandas/Python 相当于 Stata 的“levelsof”
【发布时间】:2016-03-06 15:16:41
【问题描述】:

我想获取数据框中一个变量的所有不同或唯一值的列表,这些值与该数据框中另一个变量的特定值一致。

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

levelsof(ID1) if ID2==i

如何在 Python 中做到这一点?

【问题讨论】:

  • 如果您认为其中一个答案已经回答了您的问题,请务必接受(此处以及您过去提出的其他问题)。这会向所有人发出信号,无论问题是否仍然存在,以及是否需要进一步的答案。

标签: python pandas stata


【解决方案1】:

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】:

    假设您的列是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到底是什么)。

    【讨论】:

    • 谢谢,@JohnE
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多