根据列值复制数据框的特定行

lou*_*si1 0 python duplicates dataframe pandas

嗨,我有以下数据框

  weather     day      month       activity
  sunny     Monday     April      go for cycling
  raining   Friday     December   stay home
Run Code Online (Sandbox Code Playgroud)

我想要的是在不考虑活动列的情况下将行复制 5 次

所以输出应该是

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
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 5

对重复行使用Index.repeatwith DataFrame.loc,然后用with替换重复activity的行:Series.maskIndex.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                
Run Code Online (Sandbox Code Playgroud)