Reputation: 25
hi I have the following data frame
weather day month activity
sunny Monday April go for cycling
raining Friday December stay home
what I want is to duplicate the rows by 5 times without taking into account the activity column
so the output should be
weather day month activity
sunny Monday April go for cycling
sunny Monday April
sunny Monday April
sunny Monday April
sunny Monday April
raining Friday December stay home
raining Friday December
raining Friday December
raining Friday December
raining Friday December
raining Friday December
Upvotes: 0
Views: 45
Reputation: 863741
Use Index.repeat
with DataFrame.loc
for repeated rows and then replace duplicated activity
by Series.mask
with Index.duplicated
:
df = df.loc[df.index.repeat(5)]
df['activity'] = df['activity'].mask(df.index.duplicated(), '')
df = df.reset_index(drop=True)
print (df)
weather day month activity
0 sunny Monday April go for cycling
1 sunny Monday April
2 sunny Monday April
3 sunny Monday April
4 sunny Monday April
5 raining Friday December stay home
6 raining Friday December
7 raining Friday December
8 raining Friday December
9 raining Friday December
Upvotes: 5