Конкатенация столбцов данных в цикле Pandas - PullRequest
0 голосов
/ 14 мая 2018

У меня есть набор данных 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» из каждого файла и затем обработать их, создав один единственный, средний / медианный?

1 Ответ

0 голосов
/ 14 мая 2018

Сначала создайте список всех DataFrames - фильтруйте столбцы по параметру usecols в read_csv, а также возможно опустить 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...