Ho eseguito il seguente codice Python, che crea un Pandas dataframe con due serie (a
e b
), e poi tenta di creare due nuove serie (c
e d
):creando una serie Panda con un punto nel nome
La mia comprensione è che se una serie di Pandas fa parte di un DataFrame e il nome della serie non ha spazi (e non si scontrano con un attributo o metodo esistente), è possibile accedere alla serie come attributo di il DataFrame. Come tale, mi aspettavo che la riga riga 3 funzionasse (poiché è così che si crea una nuova serie Pandas) e mi aspettavo che la riga non funzionasse (poiché l'attributo d
non esiste per DataFrame fino a quando non lo si esegue riga di codice).
Con mia sorpresa, la riga 4 non ha provocato un errore. Invece, il dataframe ora contiene tre serie:
>>> df
a b c
0 1 4 5
1 2 5 7
2 3 6 9
E c'è un nuovo oggetto, df.d
, che è una serie Pandas:
>>> df.d
0 5
1 7
2 9
dtype: int64
>>> type(df.d)
pandas.core.series.Series
Le mie domande sono le seguenti:
- Perché la riga 4 non ha provocato un errore?
df.d
è una serie di pani "normale" con tutte le funzionalità della serie normale?- È
df.d
in qualsiasi modo "connesso" al DataFramedf
o è un oggetto completamente indipendente?
mia motivazione a questa domanda è semplicemente che voglio capire meglio Panda, e non perché non v'è un particolare caso d'uso per la linea 4. versione
mio Python è 2.7.11, e le mie Panda la versione è 0.17.1.
Questa è stata un'utile aggiunta alla risposta di Alexander, grazie! –