相关疑难解决方法(0)

复制Pandas中的行

我的pandas数据框看起来像这样:

   Person  ID   ZipCode   Gender
0  12345   882  38182     Female
1  32917   271  88172     Male
2  18273   552  90291     Female
Run Code Online (Sandbox Code Playgroud)

我想复制每一行3次,如:

   Person  ID   ZipCode   Gender
0  12345   882  38182     Female
0  12345   882  38182     Female
0  12345   882  38182     Female
1  32917   271  88172     Male
1  32917   271  88172     Male
1  32917   271  88172     Male
2  18273   552  90291     Female
2  18273   552  90291     Female
2  18273   552  90291     Female
Run Code Online (Sandbox Code Playgroud)

当然,重置索引所以它是:

0
1
2
Run Code Online (Sandbox Code Playgroud)

我尝试过如下解决方案:

pd.concat([df[:5]]*3, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

和:

df.reindex(np.repeat(df.index.values, df['ID']), …
Run Code Online (Sandbox Code Playgroud)

python dataset dataframe pandas

11
推荐指数
4
解决办法
8734
查看次数

按列值复制pandas数据帧中的行,并添加带有重复索引的新列

我的问题类似于这里提出的问题.我有一个数据帧,我想重复数据帧的每一行k.伴随着它,我也想创建一个值的列0k-1.所以

import pandas as pd

df = pd.DataFrame(data={
  'id': ['A', 'B', 'C'],
  'n' : [  1,   2,   3],
  'v' : [ 10,  13,   8]
})

what_i_want = pd.DataFrame(data={
  'id': ['A', 'B', 'B', 'C', 'C', 'C'],
  'n' : [ 1, 2, 2, 3, 3, 3],
  'v' : [ 10,  13, 13, 8, 8, 8],
  'repeat_id': [0, 0, 1, 0, 1, 2]
})
Run Code Online (Sandbox Code Playgroud)

下面的命令完成了一半的工作.我正在寻找添加该repeat_id列的pandas方式.

df.loc[df.index.repeat(df.n)]
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

6
推荐指数
1
解决办法
326
查看次数

在数据帧n次重复行

考虑如下定义的数据框:

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

是否可以从中创建一个新的数据帧,其中每一行都重复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
Run Code Online (Sandbox Code Playgroud)

python pandas

3
推荐指数
1
解决办法
5099
查看次数

标签 统计

pandas ×3

python ×3

dataframe ×2

dataset ×1