【发布时间】:2018-11-20 03:49:59
【问题描述】:
我的 pandas 数据框如下所示:
Person ID ZipCode Gender
0 12345 882 38182 Female
1 32917 271 88172 Male
2 18273 552 90291 Female
我想将每一行复制 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
当然,将索引重置为:
0
1
2
...
我尝试了以下解决方案:
pd.concat([df[:5]]*3, ignore_index=True)
还有:
df.reindex(np.repeat(df.index.values, df['ID']), method='ffill')
但它们都不起作用。
【问题讨论】:
-
我认为索引是自动生成的。除非您将其设为数据框的字段,否则无法更改。无论如何,它是一个索引。必须是独一无二的。
-
pd.concat([df[:5]]*3, ignore_index=True)为我工作,你能显示你的df.index吗,如果你的索引有问题,下面的解决方案可能不起作用。 -
对不起,我会澄清一下,
pd.concat([df[:5]]*3, ignore_index=True)有效,但它将行添加到数据帧的末尾,而不是一个接一个地有 3 个重复的行 `
标签: python pandas dataframe repeat