df.values
fornisce il NumPy originale ndarray
senza gli indici.
>>> df
x y
0 4 GE
1 1 RE
2 1 AE
3 4 CD
>>> df.values
array([[4, 'GE'],
[1, 'RE'],
[1, 'AE'],
[4, 'CD']], dtype=object)
Non si può avere un dataframe senza gli indici, che sono il punto di tutta la dataframe :)
Ma tanto per essere chiari, questa operazione non è inplace:
>>> df.values is df.values
False
DataFrame mantiene i dati in array bidimensionali raggruppati per tipo, quindi quando si desidera l'intero frame dati dovrà trovare l'LCD di tutti i tipi e costruire un array 2D di quel tipo.
Per istanziare un nuovo frame di dati con i valori da quello vecchio, basta passare il vecchio dataframe alla costruzione new quelli senza dati saranno copiate le stesse strutture dati saranno riutilizzati:
>>> df1 = pd.DataFrame([[1, 2], [3, 4]])
>>> df2 = pd.DataFrame(df1)
>>> df2.iloc[0,0] = 42
>>> df1
0 1
0 42 2
1 3 4
Ma è possibile specificare in modo esplicito il parametro copy
:
>>> df1 = pd.DataFrame([[1, 2], [3, 4]])
>>> df2 = pd.DataFrame(df1, copy=True)
>>> df2.iloc[0,0] = 42
>>> df1
0 1
0 1 2
1 3 4
Grazie. Quello che ho fatto è iniziare un nuovo dataframe con i valori del vecchio dataframe. – GeauxEric
Aggiornamento della risposta. –
Penso che quello che voglio veramente sia scrivere i dati in un file senza gli indici, e questo può essere fatto facilmente impostando index = False. Scusa, non ho chiarito la mia domanda in primo luogo. La tua risposta è molto intuitiva. – GeauxEric