Ho un pandas.DataFrame df1
, indicizzato con un oggetto pandas.DateRange.slicing conveniente di DataFrames con indici datetime in panda
Se ho un d1
e d2
, come datetimes, perché df[d1:d2]
non funziona e come posso ottenere questa sezione?
Roel
Ho un pandas.DataFrame df1
, indicizzato con un oggetto pandas.DateRange.slicing conveniente di DataFrames con indici datetime in panda
Se ho un d1
e d2
, come datetimes, perché df[d1:d2]
non funziona e come posso ottenere questa sezione?
Roel
questo funziona:
In [25]: df.ix[d1:d2]
Out[25]:
A B C D
2000-01-10 1.149815 0.686696 -1.230991 -1.610557
2000-01-11 -1.296118 -0.172950 -0.603887 0.383690
2000-01-12 -1.034574 -0.523238 0.626968 0.471755
2000-01-13 -0.193280 1.857499 -0.046383 0.849935
2000-01-14 -1.043492 -0.820525 0.868685 -0.773050
2000-01-17 -1.622019 -0.363992 1.207590 0.577290
cf. http://pandas.pydata.org/pandas-docs/stable/indexing.html#advanced-indexing-with-labels
Sulle prime principi df[d1:d2]
dovrebbe funzionare come avviene per la serie:
In [27]: df['A'][d1:d2]
Out[27]:
2000-01-10 1.149815
2000-01-11 -1.296118
2000-01-12 -1.034574
2000-01-13 -0.193280
2000-01-14 -1.043492
2000-01-17 -1.622019
Name: A
Creazione di un problema qui: https://github.com/pydata/pandas/issues/946
provare il metodo truncate
:
df.truncate(before=d1, after=d2)
Non modificherà l'originale df
e tornerà uno troncato.
Dalla documentazione:
Function truncate a sorted DataFrame/Series before and/or after
some particular dates.
Parameters
----------
before : date
Truncate before date
after : date
Truncate after date
Returns
-------
truncated : type of caller
Puoi collegare a una fonte per questo? Sono su http://pandas.pydata.org/pandas-docs/stable/timeseries.html#daterange-is-a-valid-index e non ho trovato la funzione truncate. – Paragon
Funziona, grazie. C'è una ragione per cui il più conveniente 'df [d1: d2]' non funziona? – saroele
@Paragon: ecco il link alla descrizione di truncate nella documentazione corrente (v0.7.2): http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.truncate.html?highlight= truncate # pandas.DataFrame.truncate – saroele