![](/img/trans.png)
[英]Pandas: iterate over unique values of a column that is already in sorted order using For loop
[英]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.