У меня есть куча файлов в каталоге 698, если быть точным. Каждый файл содержит дату и уникальный идентификатор, а также имя. Как так:Могу ли я группировать файлы по дате и идентификатору и выполнять их различие?
import pandas as pd
from pandas import Series, DataFrame
import numpy as np
import csv
import os
import re
20151231_7801_Test_Maps.txt
20151231_7801_Test_Items.txt
20151231_7802_Test_Maps.txt
20151231_7802_Test_Items.txt
Я ищу группировать их по дате и идентификатор, откройте каждый из файлов (карты, и элементы), и сделать анализ различий по некоторым идентификаторам в файле. Как мне это сделать?
До сих пор я это как мой код, но я не знаю, как через итерацию и открыть каждый файл в каждой группе:
groups = defaultdict(list)
for filename in os.listdir('F:\Desktop'):
date = filename[:8]
identifier = filename[10:14]
basename, extension = os.path.splitext(filename)
groups[date, identifier].append(filename)
Мои выходные печатает некоторые группы правильно, но не все, для пример:
('20151231','7801')['20151231_7801_Test_Maps.txt, 20151231_7801_Test_Items.txt]
Некоторые группы печатают только один файл, хотя для этой даты и идентификатора имеется два файла.
Это не моя основная проблема, но как только они разбиты на группы, я хотел бы назначить каждый файл в группе с dataframe так:
for key in groups:
maps = pd.read_csv(file1, sep = '\t', usecols = ['ID'], skipfooter = 0, engine = 'python')
items = pd.read_csv(file2, sep = '\t', usecols = ['ID'], skipfooter = 0, engine = 'python')
#checks IDs between the two files and looks for differences
set(maps.ID).difference(items.ID)
Может кто-то пожалуйста, помогите с группировкой файлов по дате и идентификатору, и итерации, открывая файлы по группам? Благодаря!
Спасибо! Это отлично работает, мне интересно, есть ли способ сделать это в единый столбец DataFrame с именем Difference с именем файла/ID рядом с каждой записью? (Было бы проще для фильтрации отчетов) – staten12
обновил код, но не смог сделать их в Dataframe – Shijo