2016-10-23 4 views
3

Ich habe mehrere Datenrahmen, die derzeit alle Monatsenddaten haben.Wie zu "Ende des Monats" konvertieren?

ich jetzt folgende Skript importieren Finanzdaten:

import csv 
import pandas as pd 
import numpy as np 
import urllib.request 

urllib.request.urlretrieve( 
    'http://chart.finance.yahoo.com/table.csv?s=^GSPC&a=4&b=1&c=2013&d=5&e=1&f=2016&g=m&ignore=.csv', 
    'gspc.csv' 
) 

table = pd.read_csv('gspc.csv') 

    Date Open High Low Close Volume Adj Close 
49 2012-05-01 1,398 1,415 1,292 1,310 4158095900 1,310 
48 2012-06-01 1,310 1,363 1,267 1,362 4103472300 1,362 
47 2012-07-02 1,362 1,392 1,325 1,379 3663113300 1,379 

Wie gesagt, ich brauche diese Daten in End-of-Monat zu bekommen. I.e.

Date Open High Low Close Volume Adj Close 
49 2012-05-31 1,398 1,415 1,292 1,310 4158095900 1,310 
48 2012-06-30 1,310 1,363 1,267 1,362 4103472300 1,362 
47 2012-07-31 1,362 1,392 1,325 1,379 3663113300 1,379 

Ich versuchte

table['Date'] = pd.to_datetime(table['Date']) 
table.set_index('Date').resample('M') 
table 

aber nicht erfolgreich waren, wenn auch "M" sollte "month end frequency" sein.

Antwort

3

Dies sollte die Sache, die Sie für

table['Date'] = table['Date'] - pd.tseries.offsets.MonthEnd() 
+2

Suche ich denke, es sein sollte: 'table.Date - = pd.offsets.MonthEnd()' – MaxU

+0

Dieses funktioniert, danke! Wofür wird - = verwendet? – Rnaldinho

+0

@Rnaldinho, 'a - = b 'ist eine Kurzform von' a = a - b' – MaxU

Verwandte Themen