首页 > 解决方案 > 一次切片多个 CSV 文件

问题描述

我目前正在阅读 5 个 CSV 文件,并希望获取不同变量的特定数据列

我正在使用 Pandas read_csv 执行此操作,然后尝试对该变量进行切片

all_files = pd.read_csv('ca.csv'), pd.read_csv("ny.csv"), pd.read_csv("tn.csv"), pd.read_csv('az.csv'), pd.read_csv("tx.csv')

date_index = all_files[1:, 1]

这会引发错误TypeError: tuple indices must be integers or slices, not tuple

不知道我哪里错了?

标签: pythonarrayspandasnumpycsv

解决方案


错误的原因是all_files几个数据帧的元组,一个来自您读取的每个文件。因此,当您尝试这样做时,all_files[slice]您正在切片tuple,而不是它包含的数据帧。元组只能使用整数进行切片,就像普通列表一样,因此会出现错误。

如果要从每个数据帧中获取相同的列,则需要一些循环结构:

date_indexes = [df.ix[:,0] for df in all_files]

例如,上面的代码将从您读取的每个数据帧中获得第一列,作为一个系列,在一个列表中。

如果您打算在阅读后以某种方式组合数据帧,则可能不需要它。您可以改为考虑堆叠它们。堆叠也适用于熊猫系列(这是从数据框中提取的列),如果您想要通过组合每个文件中的相同列来获得长序列。


推荐阅读