编辑底部的解决方案
我正在编写一个代码,读取多个csv数据集,然后将数据可视化到一个单一的图形上。未正确运行的数据集包含365行和2列(日期行“yyyymmdd”和值行“extent”)。我试图复制代码中已经使用过两次的函数(使用新的函数/变量名),但它不接受此代码
我试过一些解决问题的方法。首先,我尝试不使用一个似乎可以规避问题的函数,但是这对于我需要代码来完成的工作是不起作用的(我需要能够绘制特定的日期范围,df.extent选项似乎不接受这一点)。我也试过查看数据集是否有任何错误会阻止数据被读取,但没有发现任何错误。这里要读取的数据集是从一个单独的代码生成的,我简短地读了一遍,这可能是问题所在,但我也尝试将数据保存到一个新的excel工作簿中进行检查,但这无助于解决问题,因此我相信这是我代码中的某个内容
我创建的函数如下:
def DOI_CDR_18(start,end):
cdr_date=cdr18.loc[(cdr18['yyyymmdd']>=start)&(cdr18['yyyymmdd']<end)]
cdr_drop_18=cdr_date.drop('extent', axis=1)
return cdr_drop_18
date_cdr18=DOI_CDR_18('1/1/2018','12/31/2018')
def CDR_extent_18(start,end):
cdr_extent=cdr18.loc[(cdr18['yyyymmdd'] >= start) & (cdr18['yyyymmdd'] < end)]
cdr_extent_drop=cdr_extent.drop(['yyyymmdd'],axis=1)
return cdr_extent_drop
cdr18_ext=CDR_extent_18('1/1/2018','12/31/2018')
plt.plot(date_cdr18,cdr18_ext,color='green',label='NRT CDR')
plt.legend()
我的数据格式示例如下:
yyyymmdd范围
2018年1月1日12672693
2018年1月2日12758550
2018年1月3日12885867
我期望输出365个数据点,包括日期和范围。相反,变量资源管理器列出了116个已读入的数据点(第1-16行的点,然后是第273-363行的点),即使读入后也不会绘制这116个点(unhable type的错误:numpy.ndarray)
解决方案:我发现我需要使用pd.to\u datetime()函数
我的具体代码是:
cdr18=pd.read\u csv(“index.csv”,parse\u dates=True,nrows=366)
cdr18['yyyymmdd']=pd.to\u datetime(cdr18['yyyymmdd'],infere\u datetime\u format=True)
首先检查表中yyyymmdd列的数据类型。也许,您可以打印几行数据帧
这可能与: df ['X'].unique() and TypeError: unhashable type: 'numpy.ndarray'
试着在绘图前清除索引
相关问题 更多 >
编程相关推荐