2
votes

Comment répéter une colonne de dataframe pandas x nombre de fois?

Si j'ai un Dataframe Pandas comme celui-ci:

    A  B  C  D
 1  8  8  8  8
 2  9  9  9  9
 3  7  7  7  7
 4  2  2  2  2

Comment puis-je le répéter x nombre de fois? Par exemple, si je voulais le répéter 3 fois, j'obtiendrais quelque chose comme ceci:

    A
 1  8
 2  9
 3  7
 4  2


0 commentaires

3 Réponses :


5
votes

Utilisez concat:

(pd.concat([df] * (n+1), axis=1, ignore_index=True)
   .rename(lambda x: chr(ord('A')+x), axis=1))

   A  B  C  D
1  8  8  8  8
2  9  9  9  9
3  7  7  7  7
4  2  2  2  2

Si vous voulez que les colonnes soient renommées, utilisez renommer :

n = 3
pd.concat([df] * (n+1), axis=1, ignore_index=True)

   0  1  2  3
1  8  8  8  8
2  9  9  9  9
3  7  7  7  7
4  2  2  2  2


0 commentaires

0
votes

Vous pouvez utiliser concat comme @coldspeed did .

Ou vous pouvez définir manuellement.

df['B'] = df.A
df['C'] = df.A
df['D'] = df.A
print(df)

   A  B  C  D
1  8  8  8  8
2  9  9  9  9
3  7  7  7  7
4  2  2  2  2


0 commentaires

1
votes

Vous pouvez utiliser Numpy pour répéter les valeurs et reconstruire le dataframe.

n = 3
pd.DataFrame(np.tile(df.values, n + 1), columns = df.columns.tolist()+list('BCD'))

    A   B   C   D
0   8   8   8   8
1   9   9   9   9
2   7   7   7   7
3   2   2   2   2


0 commentaires