Python Pandas未在数据集中完全读取数据。而是排除大量数据并抛出错误“;“不可使用类型”;

Python Pandas未在数据集中完全读取数据。而是排除大量数据并抛出错误“;“不可使用类型”;,python,pandas,numpy,csv,Python,Pandas,Numpy,Csv,编辑底部的解决方案 我正在编写一个代码,该代码读取多个csv数据集,然后将数据可视化到单个图形上。未正确运行的数据集包含365行,共2列(日期行'yyyymmdd'和值行'extent')。我试图复制代码中已经使用过两次的函数(使用新函数/变量名),但它不接受此代码 我试过一些解决问题的方法。首先,我尝试不使用一个似乎可以规避问题的函数,但这对于我需要代码总体上完成的工作是不起作用的(我需要能够绘制特定的日期范围,而df.extent选项似乎不接受这一点)。我还试着查看数据集,看是否有任何错误会

编辑底部的解决方案

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

def DOI_CDR_18(开始、结束):
cdr_date=cdr18.loc[(cdr18['yyyyymmdd']>=start)&(cdr18['yyyymmdd']=start)&(cdr18['yyyyymmdd']
我的数据格式示例如下:

yyyymmdd范围

2018年1月1日12672693

2018年1月2日12758550

2018年1月3日12885867

我期望输出365个数据点,包括日期和范围。相反,变量资源管理器列出了116个已读入的数据点(第1-16行中的点,然后是第273-363行中的点),即使读入后它也不会绘制这116个点(不可破坏类型的错误:numpy.ndarray)

解决方案:我发现我需要使用pd.to\u datetime()函数。

我的具体代码是:

cdr18=pd.read\u csv(“index.csv”,parse\u dates=True,nrows=366)


cdr18['yyyymmdd']=pd.to_datetime(cdr18['yyyymmdd'],推断_datetime_format=True)

首先检查表中yyyymmdd列的数据类型。也许,您可以打印几行数据帧

这可能与:


打印前请尝试清除索引。

添加一些数据很难从示例中看出,但您的错误可能是由于使用列表代替元组。