我有101个.CSV文件,每个文件都有Example01对值(图片中此类文件的一个示例是频谱功率密度对频率-Example的依赖性).我需要以某种方式对每个文件中第二列的值进行平方,然后对这些值求平均值(平均值发生在一个行号的值之间.即,我们从所有101个文件中取出一行第二列的平方值并对它们进行平均,所有其他行也是如此.换句话说,相关性应该在 spectral 功率密度上求平均).

如何才能实现这一目标?

到目前为止,目前我只能处理一个文件,而与此同时,一个文件的依赖关系图(没有平方)看起来就像一场噩梦.

import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv(r'C:\Users\Den\Desktop\SPD\tek0000MTH.csv', sep = ';')


x = data['W'].to_numpy()
y = data['S'].to_numpy()

plt.xlabel('w') 
plt.ylabel('S') 
plt.title('SPD') 
plt.plot(x, y)
plt.grid() 
plt.show()

Plot

与此同时,我无法想象如何同时处理101个文件来执行所有上述任务,例如平方和平均.

推荐答案

将所有CSV文件连接到一个收件箱中,groupby:

import os
import pandas as pd
csv_folder = r"/home/bera/Desktop/gistest/csvs/" #The folder with the 102 csv files, and nothing else.

#Find and create a dataframe of each csv file
frame_list = []
for root, folder, files in os.walk(csv_folder):
    for file in files:
        if file.endswith("csv"):
            fullname = os.path.join(root, file)
            df = pd.read_csv(fullname, sep=";")
            df["filename"] = file #Store the filename as a value
            frame_list.append(df) 
print(len(frame_list))
#102

megaframe = pd.concat(frame_list, axis=0) #Concatenate the 102 frames into one
print(megaframe.shape)
#(1020000, 3)

print(megaframe.sample(3))
#                  w         s     filename
# 3940    884.419539  0.018198  file_93.csv
# 6314   1526.922029  0.013237   file_4.csv
# 3322  18177.653004  0.003916  file_51.csv

megaframe["s_sq"] = megaframe["s"]**2
df_means = megaframe.groupby("filename", as_index=False)["s_sq"].mean()
print(df_means.head())
#        filename      s_sq
# 0    file_0.csv  0.000134
# 1    file_1.csv  0.000135
# 2   file_10.csv  0.000132
# 3  file_100.csv  0.000135
# 4  file_101.csv  0.000132

Python相关问答推荐

Pythind 11无法弄清楚如何访问tuple元素

Pandas 在最近的日期合并,考虑到破产

从dict的列中分钟

如何在polars(pythonapi)中解构嵌套 struct ?

Python键入协议默认值

NumPy中条件嵌套for循环的向量化

为一个组的每个子组绘制,

用砂箱开发Web统计分析

为什么Django管理页面和我的页面的其他CSS文件和图片都找不到?'

为什么常规操作不以其就地对应操作为基础?

在代码执行后关闭ChromeDriver窗口

当条件满足时停止ODE集成?

如何删除重复的文字翻拍?

获取PANDA GROUP BY转换中的组的名称

Python—在嵌套列表中添加相同索引的元素,然后计算平均值

如何设置nan值为numpy数组多条件

SpaCy:Regex模式在基于规则的匹配器中不起作用

替换包含Python DataFrame中的值的<;

多索引数据帧到标准索引DF

大型稀疏CSR二进制矩阵乘法结果中的错误