【问题标题】:Slicing multiple CSV files at once一次切片多个 CSV 文件
【发布时间】:2021-11-29 04:02:08
【问题描述】:

我目前正在读取 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

不确定我哪里出错了?

【问题讨论】:

  • 您没有正确切片。至少去掉逗号all_files[1:]

标签: python arrays pandas numpy csv


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 这是一个很好的解释,谢谢!开始怀疑我是否需要一个循环来正确挖掘文件。这就解释了
猜你喜欢
  • 2010-09-18
  • 2021-11-19
  • 1970-01-01
  • 2017-08-24
  • 1970-01-01
  • 1970-01-01
  • 2017-06-07
  • 2017-09-10
  • 2019-04-02
相关资源
最近更新 更多