转换外部数据集的日期/时间索引,以便大熊猫可以清晰地绘制

时间:2018-02-25 08:07:08

标签: pandas datetime dataframe matplotlib time-series

如果您已经设置了时间序列数据,但使用内部dtype来索引日期/时间,则您似乎能够将索引干净地绘制为here

但是当我已经有自己格式的日期和时间列的数据文件时,例如[2009-01-01T00:00],是否有办法将其转换为绘图可以读取的对象?目前我的情节如下所示。 enter image description here

代码:

dir = sorted(glob.glob("bsrn_txt_0100/*.txt"))
gen_raw = (pd.read_csv(file, sep='\t', encoding = "utf-8") for file in dir)
gen = pd.concat(gen_raw, ignore_index=True)
gen.drop(gen.columns[[1,2]], axis=1, inplace=True)

#gen['Date/Time'] = gen['Date/Time'][11:] -> cause error, didnt work
filter = gen[gen['Date/Time'].str.endswith('00') | gen['Date/Time'].str.endswith('30')]
filter['rad_tot'] = filter['Direct radiation [W/m**2]'] + filter['Diffuse radiation [W/m**2]']

lis = np.arange(35040) #used the number of rows, checked by printing. THis is for 2009-2010.
plt.xticks(lis, filter['Date/Time'])
plt.plot(lis, filter['rad_tot'], '.')
plt.title('test of generation 2009')
plt.xlabel('Date/Time')
plt.ylabel('radiation total [W/m**2]')
plt.show()

我的另一种方法是使用情节。然而,它的主要目的似乎是在互联网上提供数据。如果我熟悉所有模块并尝试自己,那将是最好的,但我正在学习,因为我去使用pandas和matplotlib。

所以我想问一下是否有人遇到与我类似的问题。

0 个答案:

没有答案