处理Zillow时间序列数据时遭遇ParserError错误求助
解决Zillow数据集处理的ParserError问题
你的报错根源是:转置整个DataFrame后,索引里混入了RegionType这类非日期的元数据列名,强行用pd.to_datetime转换所有索引自然会失败。
修正后的完整代码步骤如下:
- 读取数据集(这部分没问题):
import pandas as pd df = pd.read_csv('http://files.zillowstatic.com/research/public_csvs/zhvi/Zip_zhvi_uc_sfr_month.csv', encoding='latin')
- 转换日期列的列名为datetime类型:
# 提取第9列及之后的日期列,转换为datetime类型 date_columns = pd.to_datetime(df.columns[9:], format='%Y-%m') # 替换原数据框的列名 df.columns = list(df.columns[:9]) + list(date_columns)
- 只提取日期数据进行转置(关键:跳过非日期的元数据列):
# 将RegionName设为索引,然后只保留日期列(从第8列开始,因为前8列是元数据) time_series_data = df.set_index('RegionName').iloc[:, 8:] # 转置得到以日期为索引的时间序列 time_series_data = time_series_data.T # 此时索引已经是datetime类型,无需再次转换 time_series_data.head()
这样处理后,就不会再出现ParserError,因为转置后的索引全部是合法的日期格式。
内容的提问来源于stack exchange,提问作者lildude56170
相关产品推荐
相关产品推荐

