如何合并多个CSV文件中的最大振幅至单列'Max Amp'?
提取多CSV文件最大振幅并合并为单列
问题说明
我有大量CSV数据文件,目标是提取每个文件中的最大振幅,将所有结果合并到名为Max Amp的单列中。但目前使用以下代码时,每个文件会生成单独的结果表,无法合并为一列:
for z in csv_files: # read the csv file af = pd.read_csv(z, skiprows=3) tf= (max(af)) gf=pd.DataFrame([tf], columns=["Max Amp"]) display(gf) print()
问题原因
当前代码在每次循环中都会新建独立的DataFrame并直接展示,没有将多个文件的结果累加存储,因此每个文件的结果都是孤立的,无法合并成统一的单列。
修正后的代码
import pandas as pd # 初始化空列表,用来存储所有文件的最大振幅值 max_amps = [] for z in csv_files: # 读取CSV文件,跳过前3行 af = pd.read_csv(z, skiprows=3) # 获取当前文件的最大振幅(若需指定某列的最大值,改为af['目标列名'].max()即可) tf = max(af) max_amps.append(tf) # 将收集到的所有值转换为单列DataFrame result_df = pd.DataFrame(max_amps, columns=["Max Amp"]) # 展示最终合并后的结果 display(result_df)
代码解释
- 先初始化空列表
max_amps,作为统一存储所有最大振幅值的容器; - 循环遍历每个CSV文件,读取数据后计算最大值,将结果追加到列表中;
- 循环结束后,把列表转换为单列
DataFrame,此时所有文件的结果会合并在Max Amp这一列中; - 如果你的「最大振幅」是指某一列的最大值(而非整个文件的最大值),只需把
max(af)替换为af['你的振幅列名称'].max()即可。
内容的提问来源于stack exchange,提问作者Maya Madajewicz
相关产品推荐
相关产品推荐

