在数据帧中重复行n次

2024-04-16 05:57:58 发布

您现在位置:Python中文网/ 问答频道 /正文

考虑这样定义的数据帧:

import Pandas as pd
test = pd.DataFrame({
    'id' : ['a', 'b', 'c', 'd'],
    'times' : [2, 3, 1, 5]
    })

是否可以由此创建一个新的数据帧,其中每一行重复times次,结果如下所示:

>>> result
   id  times
0   a      2
1   a      2
2   b      3
3   b      3
4   b      3
5   c      1
6   d      5
7   d      5
8   d      5
9   d      5
10  d      5

Tags: 数据testimportiddataframepandas定义as
1条回答
网友
1楼 · 发布于 2024-04-16 05:57:58

使用^{}^{}的组合

test.loc[test.index.repeat(test.times)]

  id  times
0  a      2
0  a      2
1  b      3
1  b      3
1  b      3
2  c      1
3  d      5
3  d      5
3  d      5
3  d      5
3  d      5

要模拟精确的输出,请使用reset_index

test.loc[test.index.repeat(test.times)].reset_index(drop=True)

   id  times
0   a      2
1   a      2
2   b      3
3   b      3
4   b      3
5   c      1
6   d      5
7   d      5
8   d      5
9   d      5
10  d      5

相关问题 更多 >