如何转换为"月末"?

时间:2016-10-23 20:33:12

标签: python datetime pandas time

我有几个目前拥有所有月末数据的数据框。

我现在使用以下脚本导入财务数据:

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

正如我所说,我需要将这些数据记录到月末。 即。

    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

我试过

table['Date'] = pd.to_datetime(table['Date'])
table.set_index('Date').resample('M')
table
但是并没有成功,但是" M"应该是" month end frequency"。

2 个答案:

答案 0 :(得分:3)

这应该是你正在寻找的东西

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

答案 1 :(得分:0)

好像您只想将索引中的日期从月初转换为月末,即12月1日至12月31日。您可以尝试重采样并持续:

table.set_index('Date').resample('M').last()