【发布时间】:2014-01-07 00:50:06
【问题描述】:
我已按排序顺序构建了一个 pandas 数据框,并希望遍历具有特定列的相同值的组。在我看来,groupby 功能对此很有用,但据我所知,执行 groupby 并不能保证密钥的顺序。如何按排序顺序提取 unqiue 列值。
这是一个示例数据框:
Foo,1
Foo,2
Bar,2
Bar,1
我想要一个列表 ["Foo","Bar"],其中的顺序由原始数据框的顺序保证。然后我可以使用这个列表来提取适当的行。在我的例子中,排序实际上是由数据框中给出的列(不包括在上面的示例中)定义的,因此如果不能直接提取信息,则重新排序的解决方案是可以接受的。
【问题讨论】:
-
您能否提供代码来说明您的情况为何会失败?我的经验是,在 Pandas 中的
groupby之后,新数据框 的顺序与原始未分组数据框的顺序相同。如果您可以提供少量代码来构建玩具数据框,执行分组,然后显示手头的问题,那将很有帮助。 -
如果您只需要一个列中相同顺序的唯一值列表,为什么不直接使用:
df.c1.unique(),其中 c1 是您要为其设置唯一值的列的名称.