我正在尝试将数据框中的索引转换为列表。索引是已重新采样到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']
答案 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']