【问题标题】:How to read all .csv files from a folder in python or Matlab and write the output? [closed]如何从 python 或 Matlab 中的文件夹中读取所有 .csv 文件并写入输出? [关闭]
【发布时间】:2021-03-13 01:36:57
【问题描述】:

我的文件夹包含“n”个 .csv 文件。每个文件包含七列。我想找出第 5 列的最大值和最小值之间的差异。

如何逐个找到所有.csv文件的差异并将结果写入单独的文件?

【问题讨论】:

  • 需要这些比较的列中的所有数据类型是否相同?请发布示例数据、代码尝试和预期输出。
  • 您希望我们专门为您制作一个模块吗?到目前为止,您尝试了什么?
  • 请从intro tour 重复on topichow to ask。 “告诉我如何解决这个编码问题?”与 Stack Overflow 无关。您必须诚实地尝试解决方案,然后就您的实施提出具体问题。 Stack Overflow 无意取代现有的教程和文档。
  • 列中所有数据类型相同。我是一名科学背景的学生,对 python 和 Matlab 不熟悉。如果您提供说明的步骤和代码的sn-p,那将对我有很大的帮助。
  • 请提供更多关于你想要做什么的信息。您是否试图找出每个表中第 5 列的最大值和最小值之间的差异?还是在一张桌子和其他桌子之间?无论如何,您首先需要导入文件。使用熊猫。

标签: python pandas matlab numpy


【解决方案1】:

在 MATLAB 中,您可以这样做:

% List all CSV files
fnames = dir('*.csv');
% Pre-allocate output vector
ranges = zeros(numel(fnames), 1);
% Loop over file names
for idx = 1:numel(fnames)
    % Read the CSV data
    data = readmatrix(fnames(idx).name);
    % Get the 5th column
    col5 = data(:,5);
    % Get the range for this file
    ranges(idx) = max(col5) - min(col5);
end
% Write the result
writematrix(ranges, 'ranges.csv');
    

readmatrixwritematrix 都是相对最近的 - R2019a。

【讨论】:

  • 亲爱的 Edric, 非常感谢您了解我的情况。我是一名研究学者,我来自科学背景。作为一名学习者,我在模拟数据的后处理中苦苦挣扎。我正在使用 Matlab R2020b。我收到您共享的代码的此错误。这种类型的变量不支持大括号索引。读取文件中的错误(第 8 行)数据 = readmatrix(fnames{idx});你能帮帮我吗
  • 糟糕,抱歉,实际上并没有测试代码。编辑了答案。
  • 亲爱的 Edric, 程序没有按正确的顺序读取文件。文件的顺序是 sky_0、sky_1、sky_2、... sky_2001。但它的读取顺序是 sky_0、sky_1、sky_10、sky_1000、sky_1001、... sky_1009、sky_10、... 先生,您能帮帮我吗?
  • 亲爱的 Edric,我解决了这个问题。再次感谢您的代码。
猜你喜欢
  • 1970-01-01
  • 2020-04-04
  • 1970-01-01
  • 2018-08-07
  • 2020-08-18
  • 2023-03-18
  • 1970-01-01
  • 2017-10-03
  • 2016-10-14
相关资源
最近更新 更多