Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 9, 2018 11:52:08

druidich92
Зарегистрирован: 2016-03-05
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Правильная загрузка и обработка данных из файла

Добрый день. у меня есть небольшой класс по считыванию данных из файлов. В этом классе я считываю данные из файла, они предаставлены в .csv файле 2-мя строками таким образом

 метан, этан, пропан, изобутан, бутан, изопентан, пентан, изогексан, гексан, изогептан, гептан, изооктан, октан, изононан, нонан
0, 0, 0, 0, 0, 0, 0, 21, 34, 60, 105, 128, 50, 80, 42
и в самом методе я пытаюсь считать данные и заменить названия элементов - числами, использую словарем
вот сам файл
 class loading_flle:
    '''
    класс по считыванию файлов
    '''
    def __init__(self):
        self.paraphine = {
            'метан': -161.5,
            'этан': -88.6,
            'пропан': -42.1,
            'бутан': -0.5,
            'изобутан': -11.7,
            'пентан': 36.1,
            'изопентан': 27.9,
            'неопентан': 9.5,
            'гексан': 68.73,
            'изогексан': 60.3,
            'демитилбутан': 49.7,
            'изогептан': 90,
            'гептан': 98.4,
            'метилгексан': 90.1,
            'этилпентан': 93.5,
            'диментилпентан': 79.2,
            'триптан': 80.9,
            'октан': 125.68,
            'метилгептан': 117.6,
            'деметилгексан': 106.8,
            'метил-3-этилпентан': 115.7,
            'изооктан': 109.8,
            'тетраметилбутан': 106.5,
            'изононан': 143.3,
            'нонан': 150.8,
            'декан': 174.1,
            'ундекан': 195.9,
            'додекан': 216.3,
            'эйкозан': 342.7,
            'тридекан': 235.4,
            'тетрадекан': 250,
            'водород': 252.9
        }
        self.data = []
        self.load_data_on_files()
    def load_data_on_files(self):
        '''
        метод считывающий исходные данные из файлов
        '''
        for file_filename in os.listdir(directory_load_file_csv):
            x, y = np.genfromtxt(directory_load_file_csv +
                                 file_filename, dtype='str', delimiter=', ')
            print(x[0])
            # x,y = np.loadtxt(directory_load_file_csv +
            #   file_filename, delimiter=',')
            for i, item in enumerate(x):
                x[i] = self.paraphine[x[i]]
            if len(x) != len(y):  # проверка данных
                print('разное количество данных! перепроверьте!!!!!!!')
            self.data.append([x, y])

но не совсем получается :\
выводит ошибку
x = self.paraphine[x]
KeyError: ‘метан’
может подсказать, как исправить ?

Отредактировано druidich92 (Июнь 9, 2018 15:33:33)

Офлайн

#2 Июнь 9, 2018 21:47:59

spikejke
Зарегистрирован: 2018-02-12
Сообщения: 42
Репутация: +  5  -
Профиль   Отправить e-mail  

Правильная загрузка и обработка данных из файла

csv файл выглядит так :
метан,этан,пропан
1,2,3

 import csv
# Пропущу создание класса...
self.paraphine = [10,20,30]
def replace_element(self):
    with open('YOURFILE.csv') as csvfile:
        reader = csv.DictReader(csvfile)
        for row in reader:
            convert_data = dict(zip(self.paraphine, row.values())
    return conver_data
>>> {10: '1', 20: '2', 30: '3'}

Отредактировано spikejke (Июнь 9, 2018 21:48:38)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version