正在进行的数字作为熊猫中的第一个多索引
Posted
技术标签:
【中文标题】正在进行的数字作为熊猫中的第一个多索引【英文标题】:Ongoing-number as first multiindex in pandas 【发布时间】:2018-09-01 10:28:48 【问题描述】:在分组(按id
)数据框df
中
id, last_name, first_name
sdfg, Muller, Peter
fgjh, Smith, Rob
fgjh, Smith, Robert
hjsa, Jackson, Michael
我想在开头添加另一个索引person
作为一个正在进行的数字,以便我们得到
person, id, last_name, first_name
0, sdfg, Muller, Peter
1, fgjh, Smith, Rob
1, fgjh, Smith, Robert
2, hjsa, Jackson, Michael
我尝试使用reset_index(...)
,但无论分组如何,这都会设置一个持续的数字。
有可能吗?
【问题讨论】:
【参考方案1】:这是一种方法:
df.set_index((~df.index.duplicated()).cumsum()-1, append=True).swaplevel()
# last_name first_name
# id
# 0 sdfg Muller Peter
# 1 fgjh Smith Rob
# fgjh Smith Robert
# 2 hjsa Jackson Michael
这种方法的工作原理是取反 df.index.duplicated
的结果并获取累积和(减 1)来生成一个数组,该数组在每次索引中的值更改时递增。然后它使用set_index
和append=True
将其添加到您现有的索引中,最后使用swaplevel
,这样您的新MultiIndex 的id
部分就处于第1 级。
【讨论】:
漂亮!谢谢!以上是关于正在进行的数字作为熊猫中的第一个多索引的主要内容,如果未能解决你的问题,请参考以下文章