熊猫数据框按顺序分组

奥库布

我有输入数据框:

df1 = pandas.DataFrame( { 
    "Name" : ["Alice", "Bob", "Mallory", "Mallory","Mallory", "Bob" ,"Bob", "Mallory", "Alice"] , 
    "City" : ["Seattle", "Seattle", "Portland", "Seattle", "Seattle", "Portland", "Portland", "Seattle", "Seattle"] } )

我想按名称分组,但不是唯一的,因此输出应为:

["Alice","Bob","Mallory","Bob","Mallory", "Alice"]

我找不到任何有效的方法来做-是否有一种无需遍历所有行的方法?

rahlf23

您可以执行以下操作:

df1.groupby((df1['Name'] != df1['Name'].shift()).cumsum()).first()

产量:

         Name      City
Name                   
1       Alice   Seattle
2         Bob   Seattle
3     Mallory  Portland
4         Bob  Portland
5     Mallory   Seattle
6       Alice   Seattle

如果只需要该'Name'列:

df1.groupby((df1['Name'] != df1['Name'].shift()).cumsum())['Name'].first().values

产量:

['Alice' 'Bob' 'Mallory' 'Bob' 'Mallory' 'Alice']

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章