我有以下数据框:
** Dataframe :**
id animal 1 dog 2 cat 3 rabbit 4 horse 5 fox
我想把每个id复制3次。我怎样用方法链在Pandas身上做到这一点?
预期产出:
id animal 1 dog 1 dog 1 dog 2 cat 2 cat 2 cat 3 rabbit 3 rabbit 3 rabbit 4 horse 4 horse 4 horse 5 fox 5 fox 5 fox
u2nhd7ah1#
您可以使用loc或pipe链接复制:
loc
pipe
df.loc[lambda d: d.index.repeat(3)]
或者:
df.pipe(lambda d: d.loc[d.index.repeat(3)])
输出:
id animal 0 1 dog 0 1 dog 0 1 dog 1 2 cat 1 2 cat 1 2 cat 2 3 rabbit 2 3 rabbit 2 3 rabbit 3 4 horse 3 4 horse 3 4 horse 4 5 fox 4 5 fox 4 5 fox
esyap4oy2#
一种方法是使用pandas.reindex:
pandas.reindex
df.reindex(df.index.repeat(3)).reset_index(drop=True)
或
df.set_index('id').reindex(df['id'].repeat(3)).reset_index()
id animal 0 1 dog 1 1 dog 2 1 dog 3 2 cat 4 2 cat 5 2 cat 6 3 rabbit 7 3 rabbit 8 3 rabbit 9 4 horse 10 4 horse 11 4 horse 12 5 fox 13 5 fox 14 5 fox
2条答案
按热度按时间u2nhd7ah1#
您可以使用
loc
或pipe
链接复制:或者:
输出:
esyap4oy2#
一种方法是使用
pandas.reindex
:或
输出: