如何在 Pandas 中复制行? [英] How can I replicate rows in Pandas?
本文介绍了如何在 Pandas 中复制行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的熊猫数据框如下所示:
My pandas dataframe looks like this:
Person ID ZipCode Gender
0 12345 882 38182 Female
1 32917 271 88172 Male
2 18273 552 90291 Female
我想将每一行复制 3 次,例如:
I want to replicate every row 3 times like:
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
当然,重置索引是这样的:
And of course, reset the index so it is:
0
1
2
...
我尝试了以下解决方案:
I tried solutions such as:
pd.concat([df[:5]]*3, ignore_index=True)
还有:
df.reindex(np.repeat(df.index.values, df['ID']), method='ffill')
但它们都不起作用.
推荐答案
尝试使用 np.repeat
:
newdf = pd.DataFrame(np.repeat(df.values,3,axis=0))
newdf.columns = df.columns
print(newdf)
上面的代码会输出:
Person ID ZipCode Gender
0 12345 882 38182 Female
1 12345 882 38182 Female
2 12345 882 38182 Female
3 32917 271 88172 Male
4 32917 271 88172 Male
5 32917 271 88172 Male
6 18273 552 90291 Female
7 18273 552 90291 Female
8 18273 552 90291 Female
np.repeat
重复df
的值,3
次.
然后我们通过分配new_df.columns = df.columns
来添加列.
Then we add the columns with assigning new_df.columns = df.columns
.
您也可以在第一行指定列名,如下所示:
You could also assign the column names in the first line, like below:
newdf = pd.DataFrame(np.repeat(df.values, 3, axis=0), columns=df.columns)
print(newdf)
上面的代码也会输出:
Person ID ZipCode Gender
0 12345 882 38182 Female
1 12345 882 38182 Female
2 12345 882 38182 Female
3 32917 271 88172 Male
4 32917 271 88172 Male
5 32917 271 88172 Male
6 18273 552 90291 Female
7 18273 552 90291 Female
8 18273 552 90291 Female
这篇关于如何在 Pandas 中复制行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文