Мне нужен более быстрый способ с функцией ведения журнала для анализа этого особого типа данных в файле CSV

#python-3.x #pyspark

#python-3.x #pyspark

Вопрос:

У меня есть файл с нижеприведенным форматом данных

 <aqr>a=769 b="United States" c=02/04/2019 d=01:03:23
<aqr>a=798 b="India" c=02/04/2019 d=01:03:23 e="Non existent"
  

Таким образом, в основном все строки имеют несколько столбцов, но столбцы не являются фиксированными, и там нет заголовка. Поэтому необходимо создать заголовок столбца из самих данных. Как и в примере выше, a, b, c, d и e будут заголовками столбцов.

Я создал код, который выполняет эту работу, но я ищу более быстрый способ и с возможностью ведения журнала.

Безусловно, моя логика заключается в том, чтобы вначале удалить ненужные данные, затем получить данные в словаре и превратить их в dataframe.

 result = defaultdict(list)
with open('testfiles/test.csv', 'r') as file:
    pardic = { }
    new_list = []
    final_list = []
    for line in file.read().splitlines():
        rule0 = line.strip("<aqr>")
        rule0 = '~'.join(shlex.split(rule0))
        y = rule0.split('~')
        for word in y:
            x = word.split('=')
            result[x[0]].append(x[1])
data = pd.DataFrame.from_dict(result, orient='index')
data = data.T
  

Результат прекрасен. Мне просто нужно более быстрое решение для этого.

Комментарии:

1. rule0 = '~'.join(shlex.split(rule0)); y = rule0.split('~') на первый взгляд кажется излишним; по какой причине вы делаете это таким образом, а не просто y = shlex.split(rule0) ?

2. Да, вы были правы. В этом не было необходимости.