【问题标题】:open multiple CSV files and reshape it to column打开多个 CSV 文件并将其重塑为列
【发布时间】:2023-03-11 19:37:02
【问题描述】:

我有多个 CSV 文件,想将它们重新整形为列并将每个文件再次保存为 CSV。 我写了这段代码,但一次无法导入多个 CSV。

首先,我这样打开文件:

import csv
import numpy as np
results = []
with open("ESACCI-SEALEVEL-L4-MSLA-MERGED-19930115000000-fv02.csv") as csvfile:
reader = csv.reader(csvfile, quoting=csv.QUOTE_NONNUMERIC) 
for row in reader: # each row is a list
    results.append(row)

然后对其进行整形并保存为 csv

data1 = np.reshape(results,(-1, 1))
np.savetxt('data1.csv', data1 , delimiter=",")

请帮帮我

【问题讨论】:

  • 嗨,我不太明白这里的问题。是否要处理文件名列表?
  • 嗨,我想导入多个 csv 文件,然后将每个文件重新整形为列并将每个文件分别保存为 csv。
  • 那么,只使用 for 循环并一个一个地执行它们有什么问题吗?
  • 好的,我应该如何使用for循环?

标签: python export-to-csv reshape


【解决方案1】:

你可以使用一个简单的for循环来实现这个

import csv
import numpy as np

input_file_list = ['file1.csv', 'file2.csv', 'file3.cvs']

for file_name in input_file_list:
    results = []
    with open(file_name) as csvfile:
        reader = csv.reader(csvfile, quoting=csv.QUOTE_NONNUMERIC) 
    for row in reader: # each row is a list
        results.append(row)
    data1 = np.reshape(results,(-1, 1))
    np.savetxt(output_name[:-4] + 'processed.csv', data1 , delimiter=",")

【讨论】:

    【解决方案2】:

    据我了解,您想对多个 csv 文件执行相同的操作。这可以使用如下循环来完成,您可以在其中提及 csv 文件的目录和文件名模式 -

    import csv
    import numpy as np
    import glob, os
    
    os.chdir("C:\\your_dir\\")
    results = []
    for counter, file in enumerate(glob.glob("*.csv")):
        with open(file) as csvfile:
            reader = csv.reader(csvfile, quoting=csv.QUOTE_NONNUMERIC) 
            for row in reader: # each row is a list
                results.append(row)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-19
      • 1970-01-01
      • 1970-01-01
      • 2017-05-05
      • 2014-07-29
      • 2017-11-03
      • 2019-10-11
      • 1970-01-01
      相关资源
      最近更新 更多