重采样后尝试返回索引列表

时间:2019-03-28 18:17:12

标签: python-3.x pandas

我正在尝试将数据框中的索引转换为列表。索引是已重新采样到10分钟时间范围的日期。

我尝试过data.index.tolist() 但这返回:

    [Timestamp('2019-03-27 12:20:00'), Timestamp('2019-03-27 12:30:00'), 
    Timestamp('2019-03-27 12:40:00'), Timestamp('2019-03-27 12:50:00')]

data.index.values.tolist()也返回:

[1553689200000000000, 1553689800000000000, 1553690400000000000, 1553691000000000000]

我的代码如下:

df = pd.read_csv(io.StringIO(csv_data.decode('utf-8')), header=0, 
names=['timestamp', 'open', 'high', 'low', 'close', 'volume'],
index_col=0, parse_dates=True)

data = df.resample('10min').agg({'open': 'first', 
                                  'high': 'max', 
                                   'low': 'min', 
                                 'close': 'last', 
                                'volume': 'sum'}).dropna()

time = data.index.tolist()

对此可能有一个简单的答案,但是我只想要一个日期列表。我不想要Timestamp()或任何元数据。输出应如下所示:

['2019-03-27 12:20:00', '2019-03-27 12:30:00', '2019-03-27 12:40:00', '2019-03-27 12:50:00']

2 个答案:

答案 0 :(得分:0)

您可以尝试

from datetime import datetime
dt_list = map(datetime.fromtimestamp,data.index.values.tolist())

答案 1 :(得分:0)

使用to_series.dt访问器和strftime进行尝试:

设置数据框:

df = pd.DataFrame(np.random.randint(0,100,25).reshape(5,-1), 
                  index = pd.date_range('2018-03-12', periods=5, freq='D'))

代码:

df.index.to_series().dt.strftime('%Y-%m-%d %H:%M:%S').tolist()

输出:

['2018-03-12 00:00:00',
 '2018-03-13 00:00:00',
 '2018-03-14 00:00:00',
 '2018-03-15 00:00:00',
 '2018-03-16 00:00:00']