Python Pandas reproduire les lignes dans dataframe
Si les données ressembler à:
Store,Dept,Date,Weekly_Sales,IsHoliday
1,1,2010-02-05,24924.5,FALSE
1,1,2010-02-12,46039.49,TRUE
1,1,2010-02-19,41595.55,FALSE
1,1,2010-02-26,19403.54,FALSE
1,1,2010-03-05,21827.9,FALSE
1,1,2010-03-12,21043.39,FALSE
1,1,2010-03-19,22136.64,FALSE
1,1,2010-03-26,26229.21,FALSE
1,1,2010-04-02,57258.43,FALSE
Et je veux dupliquer les lignes avec IsHoliday égale à TRUE, je peux le faire:
is_hol = df['IsHoliday'] == True
df_try = df[is_hol]
df=df.append(df_try*10)
Mais est-il une meilleure façon de faire ce que j'ai besoin de dupliquer des vacances de lignes par 5 fois, et je dois ajouter 5 fois si vous utilisez façon décrite ci-dessus.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez mettre
df_try
à l'intérieur d'une liste, puis faire ce que vous avez à l'esprit:ignore_index
param sorte que le résultat final dataframe a un bon indice:df.append([df_try]*5, ignore_index=True)
Autre façon est utilisant la méthode concat() la fonction:
C'est une vieille question, mais comme il vient encore au dessus de mes résultats dans Google, voici une autre façon.
Dites que vous voulez reproduire les lignes où col1="b".
Vous pouvez remplacer le
3 if val=="b" else 1
dans la liste de l'interprétation avec une autre fonction qui pourrait revenir 3 si val=="b" ou 4 si val=="c" et ainsi de suite, donc c'est assez flexible.À l'ajout et à la concaténation est généralement lente dans les Pandas donc je vous recommande juste de faire une nouvelle liste de lignes et les transformant en un dataframe (sauf en ajoutant une seule ligne ou la concaténation de quelques dataframes).