цикл python по файлам .dat для структурирования неструктурированных данных - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь читать файлы .dat через каталог, код которого ниже корректно работает при работе со структурированными данными (например, текст с разделителями и / или csv). Я пытаюсь прочитать 3 файла DAT в панды и добавить их вместе и извлечь имя файла, чтобы добавить его в последний столбец кадра данных.

Здесь приведен фрагмент .dat, это всего лишь пример, который я составил для отображения данных (первые несколько строк - это мусор, который я хочу пропустить:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{"Basketball_Player_Name" : "Michael Jordan", "Bulls" : {"school" :[ { 'North Carolina' : {"id":1},
"sneaker_brand" : {'brandOfSneaker" : {'Nike': JustDoIt}, "Championships" :[[ 6]]}, "Statistics" :"bunchofStats", "Address" : "Chicago,IL",     "Export_Data" : "xls", "Version: 2}  and then more junk

Я хочу извлечь следующие заголовки столбцов в pandas df: Basketball_Player_Name Статистика Адрес Экспорт данных

Затем сохраните данные, которые связаны в правильном столбце Майкл Джордан, bunchOfStats, Чикаго, Иллинойс, XLS

Буду признателен за любую помощь, спасибо!

import os
import pandas as pd
import glob

### read through a directory
path =r'C:\Users\d\Desktop\data' # use your path
allFiles = glob.glob(path + "/*.dat")

#create the dataframe
frame = pd.DataFrame()

#append all the data to an empty list and read the files
list_total = []
 for file_ in allFiles:
  df = pd.read_csv(file_ , delim_whitespace = True)
  df['filename'] = os.path.basename(file_)
  list_total.append(df)


frame = pd.concat(list_total)

#Name the columns with a dictionary with the column info you want to store
frame.columns = ['names','stats','address','data_format']


#Print the frame
print(frame)

#saves data back to csv
frame.to_csv('C:/Users/d/Desktop/data/output.csv')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...