Pandas没有完全读入数据集。而是排除大量数据并抛出错误“unhasable type”

2024-09-30 16:34:06 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑底部的解决方案

我正在编写一个代码,读取多个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)


Tags: csv数据函数代码date错误startextent