5
votes

Comment faire pivoter un dataframe avec deux colonnes sans index

J'essaie de faire pivoter mon cadre de données actuel à deux colonnes qui ressemble actuellement à ceci:

 a   b   c 
12  32  12

Je veux faire pivoter ceci pour qu'aucune des deux colonnes ne devienne l'index. Mon résultat attendu est:

one   two
 a    12
 b    32
 c    12

a, b et c sont les nouvelles colonnes. 12, 32, 12 sont les valeurs de la ligne.

Merci


0 commentaires

3 Réponses :


3
votes

Si c'est votre entrée:

      0   1   2
one   a   b   c
two  12  32  12

Alors a.transpose () donne ceci:

a = pd.DataFrame([("a", 12), ("b", 32), ("c", 12)], columns=["one", "two"])
  one  two
0   a   12
1   b   32
2   c   12

Est-ce ce que vous recherchiez?


1 commentaires

Vous pouvez utiliser a.T pour faire court.



6
votes

Utilisez set_index pour déplacer la colonne «un» dans l'index, puis utilisez T pour transposer.

<class 'pandas.core.frame.DataFrame'>
Index: 1 entries, two to two
Data columns (total 3 columns):
a    1 non-null int64
b    1 non-null int64
c    1 non-null int64
dtypes: int64(3)
memory usage: 28.0+ bytes
None

Résultat: p>

one   a   b   c
two  12  32  12

Info:

a.set_index('one').T


0 commentaires

0
votes

Donner à tout le même index avec .pivot_table

df.pivot_table(columns='one', index=df.index//len(df), values='two').rename_axis(None, axis=1)

#or with pivot
df = df.pivot(columns='one', index=df.index//len(df)).rename_axis([None, None], axis=1)
df.columns = [y for _,y in df.columns]

    a   b   c
0  12  32  12


0 commentaires