【问题标题】:Pandas Error - Appending multiple files into onePandas 错误 - 将多个文件附加到一个文件中
【发布时间】:2019-04-03 21:18:09
【问题描述】:

我有一组没有任何扩展名的文件。它们当前存储在此变量“allFiles”引用的文件夹中。

allFiles = glob.glob(base2 + "/*")

我正在尝试为 allFiles 中的每个文件添加扩展名。将 .csv 添加到文件名中。我使用以下代码:

for file in allFiles:
    os.rename(os.path.join(base2, file), os.path.join(base2, file+'.csv'))

接下来,我尝试按照以下代码将这些 csv 文件中的每一个附加到一个文件中。

list_ = []
    for file_ in allFiles:
        try:
            df = pd.read_csv(file_, index_col=None, header=None,delim_whitespace = True, error_bad_lines=False)
            list_.append(df)
        except pd.errors.EmptyDataError:
            continue

当我运行上述代码时,我收到一条错误消息,指出其中一个文件不存在。

Error : FileNotFoundError: File b'/Users/base2/file1' does not exist

但 file1 现在已重命名为 file1.csv

任何人都可以建议我在上面哪里出错了。谢谢

更新:

allFiles = glob.glob(base2 + "/*")
print(allFiles)
list_ = []
print(list_)
allFiles = [x + '.csv' for x in allFiles]
print(allFiles)
for file_ in allFiles:
    try:
        df = pd.read_csv(file_, index_col=None, header=None)
        list_.append(df)
    except pd.errors.EmptyDataError:
        continue

Error : FileNotFoundError: File b'/Users/base2/file1.csv' does not exist

【问题讨论】:

  • 您重命名文件后是否再次尝试执行allFiles = glob.glob(base2 + "/*")
  • 最初,您更改了文件名,但没有更改数组中的字符串。随着您的更新,您现在正在更改 allFiles 数组中的字符串,但不会更改文件名。你需要两者都做。
  • @wwii 你的评论帮助我克服了这个问题。

标签: python python-3.x pandas append


【解决方案1】:

在运行循环之前,请执行以下操作:

为清楚起见进行编辑:

for file in allFiles:
    os.rename(os.path.join(base2, file), os.path.join(base2, file+'.csv'))

###What you're adding###
allFiles = [x+'.csv' for x in allFiles]
########################

for file_ in allFiles:
    try:

基本上,问题在于您正在更改文件名,但您没有更改列表中的字符串以反映新文件名。如果您打印 allFiles,您可以看到这一点。以上将为您进行必要的更改。

【讨论】:

  • 感谢您的评论,有一个新手问题。我按照您提到的步骤进行操作,但发现文件扩展名在循环之前没有添加到文件中。仍然抛出相同的错误。我已经用这些更改更新了我的初始帖子。你能告诉我我哪里出错了。谢谢
  • 哦,没问题。关键是“添加”上面的行,而不是替换你所拥有的。请参阅上面的编辑。
  • allFileslist,而不是数组。
  • 你是对的,二战。我偶然使用了 R 术语,却忘记了其中的区别。为清晰起见进行了编辑。
猜你喜欢
  • 2021-08-29
  • 2020-03-19
  • 1970-01-01
  • 2019-08-15
  • 1970-01-01
  • 2018-12-06
  • 2023-03-06
  • 2020-08-23
  • 1970-01-01
相关资源
最近更新 更多