简体   繁体   English

在循环熊猫中串联数据框的列

[英]Concatenate columns of dataframes in a loop Pandas

I have a dataset of csv files with two columns: wavelengths and absorbance values. 我有两列的csv文件数据集:波长和吸光度值。

I'd like to do some statistical analysis within a loop, which contains a set of files, eg a mean absorbance file with standard deviation etc. 我想在一个循环中进行一些统计分析,该循环包含一组文件,例如具有标准偏差的平均吸光度文件等。

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']

My question is how do I "concatenate" 'Abs' columns from each file and then operate on them creating one single, mean/median one? 我的问题是如何将每个文件中的“ Abs”列“连接”,然后对其进行操作以创建一个单一的,均值/中值的列?

First create list of all DataFrames - filter columns by parameter usecols in read_csv and also is possible omit delimiter=',' because default parameter: 首先创建所有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)

Alternative: 替代方案:

dfs = [pd.read_csv(mypath + files[m], skiprows=1, usecols = ['Wavelength (nm)', 'Abs']) for m in range(len(files))]

And last concat together: 而在去年concat在一起:

df = pd.concat(dfs, ignore_index=True)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM