【问题标题】:Python timestamp as indexPython时间戳作为索引
【发布时间】:2019-04-17 14:34:11
【问题描述】:

当我正在写我的硕士论文时,我必须第一次使用 Python。 为了用时间戳索引我的数据,我尝试了以下方法,但它并没有真正起作用。好吧,也许确实如此,但我愚蠢地通过时间来访问数据。也许有人可以帮助我执行下一步,以便我可以使用时间戳访问数据,以便我可以将每年的数据分成几个月。

import pandas as pd
import numpy as np
import matplotlib.pylab as plt
from matplotlib import pyplot
import datetime as dt
from matplotlib.pylab import rcParams
import datetime
rcParams['figure.figsize'] = 15, 6

data = pd.read_csv('PhelixPowerSpotHistory_2015.csv')
data['Delivery Date']=pd.to_datetime(data['Delivery Date'])
#data['Time']= pd.to_datetime(data.DeliveryDate)
#print (data.head())
print(data.head(10))
from datetime import datetime
ts = data['PriceEUR/MWh']
print(ts.head(10))


import matplotlib.pyplot as plt
plt.plot(ts)
plt.ylabel('€/MWh')
plt.xlabel('Delivery Date')
plt.xticks(np.linspace(0,8721,12))
plt.show()

我的数据头部是这样的:

0 2015-01-01 00:00:00         25.02
1 2015-01-01 01:00:00         18.29
2 2015-01-01 02:00:00         16.04
3 2015-01-01 03:00:00         14.60
4 2015-01-01 04:00:00         14.95
5 2015-01-01 05:00:00         14.50
6 2015-01-01 06:00:00         10.76
7 2015-01-01 07:00:00         12.01
8 2015-01-01 08:00:00         12.39
9 2015-01-01 09:00:00         14.04

提前致谢

【问题讨论】:

    标签: python pandas matplotlib timestamp


    【解决方案1】:

    我不太清楚您想要的输出是什么,但是要按日期访问数据,您可以这样做:

    df['delivery date'] = pd.to_datetime(df['delivery date']) # convert column to datetime object
    df.set_index('delivery date', inplace=True) # set column 'date' to index
    

    要访问一天的数据:

    print (df.loc['2015-01-01 00:00:00']) 
    

    输出:

    €/MWh    25.02
    

    然后绘制:

    df.plot()
    plt.show()
    

    所有 df:

                           €/MWh
    delivery date               
    2015-01-01 00:00:00    25.02
    2015-01-01 01:00:00    18.29
    2015-01-01 02:00:00    16.04
    2015-01-01 03:00:00    14.60
    2015-01-01 04:00:00    14.95
    2015-01-01 05:00:00    14.50
    2015-01-01 06:00:00    10.76
    2015-01-01 07:00:00    12.01
    2015-01-01 08:00:00    12.39
    2015-01-01 09:00:00    14.04
    

    【讨论】:

    • 如果我想分离例如前 3 个值怎么办。直觉上,我会尝试这样的方法,但它不起作用: df1= df['2015-01-01 00:00:00':'2015-01-01 02:00:00']
    • “分离值”是什么意思?这个:print df.iloc[:3,:]?
    • 嗯,我有一个数据集,其中包含一年内的 8000 个值,我想看看例如月份
    • 要按名称而不是索引访问,请使用 .loc 而不是 .iloc
    • 对于本月的第二个问题,请打开一个新问题,在其中准确描述您想要的输出:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 2012-05-23
    • 1970-01-01
    • 2013-05-07
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多