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
3 Réponses :
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?
Vous pouvez utiliser a.T pour faire court.
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
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