Python 如何检查日期时间索引数据帧的连续性
我得到了一个datetime索引数据框,一年中每小时有一个条目(例如格式为“2019-01-01 00:00:00”) 我创建了一个每周都会绘图的程序,但是我得到的一些绘图很奇怪 我想这可能是我的数据帧中的连续性问题,一些数据不会在好的位置被索引,但我不知道如何检查这一点 如果有人有线索,那会帮我大忙的 祝你今天愉快 编辑:我将尝试为您提供一些代码 首先,我无法向您提供我使用的确切数据,因为它是专业的,但我将尝试调整我的代码以适应随机生成的数据帧Python 如何检查日期时间索引数据帧的连续性,python,pandas,matplotlib,Python,Pandas,Matplotlib,我得到了一个datetime索引数据框,一年中每小时有一个条目(例如格式为“2019-01-01 00:00:00”) 我创建了一个每周都会绘图的程序,但是我得到的一些绘图很奇怪 我想这可能是我的数据帧中的连续性问题,一些数据不会在好的位置被索引,但我不知道如何检查这一点 如果有人有线索,那会帮我大忙的 祝你今天愉快 编辑:我将尝试为您提供一些代码 首先,我无法向您提供我使用的确切数据,因为它是专业的,但我将尝试调整我的代码以适应随机生成的数据帧 import pandas as pd im
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
import os
mpl.rc('figure', max_open_warning = 0)
df = pd.DataFrame({'datetime': pd.date_range('2019-01-01', '2020-12-31',freq='1H', closed='left')})
df['datetime']=pd.to_datetime(df['datetime'])
df['week'] = df['datetime'].dt.isocalendar().week
df['month'] = df['datetime'].dt.month
df=df.set_index(['datetime'])
df=df[['data1','data2','data3','data4','week','month']]
df19=df.loc['2019-01':'2019-12']
df20=df.loc['2020-01':'2020-12']
if not os.path.exists('mypath/Programmes/Semaines/2019'):
os.mkdir('mypath/Programmes/Semaines/2019')
def graph(a): #Creating the function that will generate all the data I need for 2019 and place them in the good folder, skipping the 1st week of the year cause it's buggued
for i in range (2,53):
if not os.path.exists('mypath/Programmes/Semaines/2019/'+str(a)):
os.mkdir('mypath/Programmes/Semaines/2019/'+str(a))
folder='mypath/Programmes/Semaines/2019/'+str(a)
plt.figure(figsize=[20,20])
x=df19[[a]][(df19["week"]==i)]
plt.plot(x)
name=str(a)+"_"+str(i)
plt.savefig(os.path.join(folder,name))
return
for j in df19.columns :
graph(j)
即使我没有直接提供数据,也希望这能有所帮助:/首先使用
df.info()
了解数据帧的大致情况。我做到了,每列的非空计数都是可以的(除了其中2列中缺少3个值),但我的14列中有10列是float64类型,3列是int64,1列是UInt32,这很重要吗?如果x轴是一个时间序列,我们需要将其转换为,例如,df['date']=pd.to_datetime(df['date'])
。我鼓励您提供一个示例,以便我们可以帮助您找到一个适用于特定问题的解决方案。它应该包含一个和一些代码,显示如何创建绘图。理想情况下,应该可以复制粘贴并运行它,而无需任何额外的努力,如我发布的答案和所示。这里我提供了我正在使用的代码,希望它可以帮助我,即使我不能直接提供我正在处理的数据