Set*_*jmp 1 python group-by pandas
我已按排序顺序构建了一个pandas数据框,并希望迭代具有特定列相同值的组.在我看来,groupby功能对此很有用,但据我所知,执行groupby并不能保证密钥的顺序.如何按排序顺序提取unqiue列值.
这是一个示例数据框:
Foo,1
Foo,2
Bar,2
Bar,1
Run Code Online (Sandbox Code Playgroud)
我想要一个列表["Foo","Bar"],其中订单由原始数据帧的顺序保证.然后我可以使用此列表来提取适当的行.在我的情况下,排序实际上是由数据框中给出的列(未包含在上面的示例中)定义的,因此如果无法直接提取信息,则可以接受重新排序的解决方案.
正如评论中所提到的,您可以在列上使用unique来保留顺序(与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)
Run Code Online (Sandbox Code Playgroud)
然后你可以使用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9130 次 |
| 最近记录: |