根据列值在pandas DataFrame中重复行 [英] Repeat rows in a pandas DataFrame based on column value
本文介绍了根据列值在pandas DataFrame中重复行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下df:
code . role . persons
123 . Janitor . 3
123 . Analyst . 2
321 . Vallet . 2
321 . Auditor . 5
第一行意味着我有3个人担任看门人. 我的问题是我需要每个人一行.我的df应该看起来像这样:
The first line means that I have 3 persons with the role Janitors. My problem is that I would need to have one line for each person. My df should look like this:
df:
code . role . persons
123 . Janitor . 3
123 . Janitor . 3
123 . Janitor . 3
123 . Analyst . 2
123 . Analyst . 2
321 . Vallet . 2
321 . Vallet . 2
321 . Auditor . 5
321 . Auditor . 5
321 . Auditor . 5
321 . Auditor . 5
321 . Auditor . 5
我该怎么用熊猫呢?
推荐答案
reindex
+ repeat
df.reindex(df.index.repeat(df.persons))
Out[951]:
code . role ..1 persons
0 123 . Janitor . 3
0 123 . Janitor . 3
0 123 . Janitor . 3
1 123 . Analyst . 2
1 123 . Analyst . 2
2 321 . Vallet . 2
2 321 . Vallet . 2
3 321 . Auditor . 5
3 321 . Auditor . 5
3 321 . Auditor . 5
3 321 . Auditor . 5
3 321 . Auditor . 5
PS:您可以添加.reset_index(drop=True)
以获取新索引
PS: you can add.reset_index(drop=True)
to get the new index
这篇关于根据列值在pandas DataFrame中重复行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文