簡體   English   中英

熊貓:迭代已經排序的列的唯一值

[英]Pandas: iterate over unique values of a column that is already in sorted order

我已經按排序的順序構造了一個熊貓數據框,並希望遍歷具有相同特定列值的組。 在我看來,groupby功能對此很有用,但是據我所知,執行groupby不能保證鍵的順序。 如何按排序順序提取unueue列值。

這是一個示例數據幀:

Foo,1
Foo,2
Bar,2
Bar,1

我想要一個列表[“ Foo”,“ Bar”],其中的順序由原始數據幀的順序來保證。 然后,我可以使用此列表提取適當的行。 在我的情況下,排序實際上是由數據幀中也提供的列定義的(上面的示例中未包括),因此,如果無法直接提取信息,則可以采用重新排序的解決方案。

如評論中所述,您可以在將保留順序的列上使用唯一鍵(與numpy的唯一鍵不同,它不會排序):

In [11]: df
Out[11]: 
     0  1
0  Foo  1
1  Foo  2
2  Bar  2
3  Bar  1

In [12]: df[0].unique()
Out[12]: array(['Foo', 'Bar'], dtype=object)

然后,您可以使用groupby的get_group訪問相關的行:

In [13]: g = df.groupby([0])

In [14]: g.get_group('Foo')
Out[14]: 
     0  1
0  Foo  1
1  Foo  2    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM