Найти - Пользователи
Полная версия: Правильная загрузка и обработка данных из файла
Начало » Python для новичков » Правильная загрузка и обработка данных из файла
1
druidich92
Добрый день. у меня есть небольшой класс по считыванию данных из файлов. В этом классе я считываю данные из файла, они предаставлены в .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: ‘метан’
может подсказать, как исправить ?
spikejke
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'}
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB