Итеративное индексирование столбцов с несколькими заголовками в пандах - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть файлы с двумя столбцами, длиной волны и интенсивностью, и у меня есть скрипт, который перебирает файлы в каталоге, чтобы объединить их в один файл с одним столбцом длины волны и многими столбцами интенсивности.Я хотел бы заменить столбец интенсивности несколькими индексами, содержащими информацию из имени файла (сумка, из которой получен образец, дата выборки и т. Д.).У меня есть датафрейм с этой информацией, но я не смог найти функцию панды, чтобы заменить "интенсивность" на мой установленный фрейм данных.Мой текущий код копирует фрейм данных один раз и перезаписывает его каждым файлом, поэтому у меня остается один набор этой информации, который соответствует только последнему файлу в каталоге.Текущий код размещен ниже.

import os
import pandas as pd
import glob
import numpy as np

def csvxtract():
    WavelengthDF = pd.DataFrame(columns=['wavelength'])
    TwoColDF = pd.DataFrame(columns=['wavelength', 'intensity'])
    bag = str(input('Please enter location and number of this sample bag: '))
    for filename in glob.glob('*.csv'):
        TwoColDF = pd.read_csv(filename)
        file = str(filename)
        NameDF = pd.DataFrame({'Bag': [bag], \
                               'Sample':[file[:6]], \
                               'Trial':[file[6:9]], \
                               'Date': [file[10:18]], \
                               'Time': [file[19:25]]})
        TNameDF = NameDF.T
        #ReNameTwoColDF = TwoColDF.rename(index=str, columns={'wavelength':'wavelength', 'intensity':TNameDF})
        combine = [TNameDF, WavelengthDF]
        CombinedDF = pd.concat(combine)
        WavelengthDF = TwoColDF.merge(WavelengthDF, how = 'outer', on = 'wavelength')
    CombinedDF.to_csv('CompiledData.csv')

csvxtract()

, как видно из моего кода, я попытался использовать df.rename, но, похоже, это работает только для пользовательских строк ввода, чтобы переименовать столбец, в отличие отперезаписать имя несколькими строками в кадре данных.Если требуются мои текущие или желаемые результаты, пожалуйста, дайте мне знать.Заранее спасибо.

Я полагаю, что короткий вопрос к моему длинному сложному вопросу, приведенному выше, будет таким: Есть ли в пандах какие-либо функции, позволяющие заменить индекс одного столбца на фрейм данных?

...