我有一个 csv 文件数据集,其中包含两列:波长和吸光度值。
我想在循环内进行一些统计分析,其中包含一组文件,例如具有标准偏差等的平均吸光度文件。
myfiles = sorted(glob.glob('blanks/Day01/Batch02/*.csv'))
mypath = 'blanks/Day01/Batch02/'
files = [f for f in listdir(mypath) if isfile(join(mypath, f))] # all files in a folder
for m in range(len(files)):
df = pd.read_csv(mypath + files[m], skiprows=1, delimiter= ',')
wl = df['Wavelength (nm)']
A = df['Abs']
我的问题是如何“连接”每个文件中的“Abs”列,然后对它们进行操作以创建一个平均值/中值列?
最佳答案
首先创建所有 DataFrame 的列表 - 通过 read_csv
中的参数 usecols
过滤列,也可以省略 delimiter=','
因为默认参数:
dfs = []
for m in range(len(files)):
df = pd.read_csv(mypath + files[m],
skiprows=1,
usecols = ['Wavelength (nm)', 'Abs']) # usecols = ['Abs'] for filter Abs
dfs.append(df)
替代方案:
dfs = [pd.read_csv(mypath + files[m], skiprows=1, usecols = ['Wavelength (nm)', 'Abs']) for m in range(len(files))]
最后concat
一起:
df = pd.concat(dfs, ignore_index=True)
关于python - 在 Pandas 循环中连接数据帧列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50332455/