【问题标题】:Reading multiple CSVs using glob results in wrong order [duplicate]使用 glob 读取多个 CSV 导致顺序错误 [重复]
【发布时间】:2021-04-24 03:23:36
【问题描述】:

我需要以正确的顺序读取多个 CSV 文件。这些文件以序列号命名,例如“file_0.csv”、“file_1.csv”、“file_2.csv”……,并以相同的顺序创建。

运行我的代码时,文件并没有按此顺序保存,而是完全混合在一起。 路径文件夹中没有其他文件。

path = "stored_files"
filenames = glob.iglob(path + "/*.csv")
dataframes = []

for filename in filenames:
    dataframes.append(pd.read_csv(filename))

【问题讨论】:

标签: python pandas csv data-science glob


【解决方案1】:

AFAIK,glob 提供对文件夹的随机排序访问。你可以随时对filenames进行排序:

path = "stored_files"
filenames = glob.iglob(path + "/*.csv")
dataframes = []

for filename in sorted(filenames):
    dataframes.append(pd.read_csv(filename))

【讨论】:

    【解决方案2】:

    字符串排序不会按照您期望的方式对带有数字的字符串进行排序(特别是 10 在 2 之前)。因此,如果您知道您的文件名是什么样的,请循环遍历数字并将"foo"+str(i)+".csv" 或其他任何内容添加到您的文件列表中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-02
      • 2015-02-28
      • 1970-01-01
      • 2022-11-03
      • 2016-05-03
      • 2018-06-29
      • 2019-01-07
      • 2016-07-29
      相关资源
      最近更新 更多