【发布时间】:2018-03-20 14:23:59
【问题描述】:
我使用pandas.DataFrame.take 仅保留数据帧的某些行(一列中的值与某个正则表达式模式匹配的行)。
为了做到这一点,我正在构建一个索引列表以保持循环检查每一行是否与模式匹配:
for index, row in combined_csv.iterrows():
if re.match(regex_files_to_keep, row['commit_file']):
indices_to_keep.append(index)
索引值因此由pandas.DataFrame.iterrows返回。
我的数据集存储为 CSV 文件。太大了一次读不完,我用的是pandas.read_csv的chunksize参数。
应用于第一个块的take 没有任何问题。但是,从第二个块开始,它会引发以下错误:
IndexError: 索引超出范围
我打印了数据框的第一个和最后一个元素的列表值和索引(使用combined_csv.index[0] 和combined_csv.index[-1])。 indices_to_keep 列表中的所有值都在数据框的第一个和最后一个元素的索引定义的边界内。
那为什么会出现这个错误呢?
【问题讨论】:
标签: python pandas dataframe chunks