Зарегистрируйте фрейм данных, используя ведение журнала и пандыPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Зарегистрируйте фрейм данных, используя ведение журнала и панды

Сообщение Anonymous »


Я использую pandas для работы с кадрами данных и регистрацию для регистрации промежуточных результатов, а также предупреждений и ошибок в отдельный файл журнала. Мне нужно напечатать в один и тот же файл журнала несколько промежуточных кадров данных. В частности, я хочу:
[*]Печатать кадры данных в тот же файл журнала, что и остальные сообщения регистрации (чтобы облегчить отладку и избежать записи множества промежуточных файлов, как в случае с вызовами). в to_csv с указанием места назначения файла), [*]Управляйте подробностью ведения журнала с помощью уровней ведения журнала, например DEBUG или INFO. [*]Управляйте подробностью журнала с помощью отдельной переменной, которая определяет, сколько строк фрейма данных нужно распечатать. [*]Печать по одной строке в каждой строке с выровненными столбцами и каждой строкой, которой предшествуют типичные метаданные журнала, например 240102 10:58:20 INFO: .
Лучшее, что я смог придумать, это приведенный ниже код, который слишком многословен. Есть ли более простой и питонический способ регистрации фрагмента кадра данных?

Пример:

импортировать ввод-вывод журнал импорта импортировать панд как pd # Вывести в журнал такое количество строк из нескольких промежуточных фреймов данных, # установлено значение 20 или около того: MAX_NUM_DF_LOG_LINES = 4 logging.basicConfig( datefmt = '%y%m%d %H:%M:%S', format = '%(asctime)s %(имя уровня)s: %(сообщение)s') logger = logging.getLogger(__name__) # Или logging.DEBUG и т. д.: logger.setLevel(уровень = logging.INFO) # Пример простого сообщения журнала: logger.info('Чтение ввода.') ТЕСТДАТА=""" ферментативные области N длина ааа все 10 238045 ааа все 20 170393 Ааа я поймал 10 292735 Ааа я поймал 20 229824 АагИ все 10 88337 АагИ все 20 19144 AagI захватил 10 34463 AagI захватила 20 19220 """ df = pd.read_csv(io.StringIO(TESTDATA), sep='\s+') # ...некоторый код.... # Пример сообщения журнала с фрагментом кадра данных, здесь с использованием # `head` (но это может быть другой метод, разрезающий кадр данных): logger.debug('менее важные промежуточные результаты: df:') для строки в df.head(MAX_NUM_DF_LOG_LINES).to_string().splitlines(): logger.debug(строка) # ...еще код.... logger.info('более важные промежуточные результаты: df:') для строки в df.head(MAX_NUM_DF_LOG_LINES).to_string().splitlines(): logger.info (строка) # ...еще код.... Печать:

240102 10:58:20 ИНФОРМАЦИЯ: Чтение ввода. 240102 10:58:20 ИНФО: более важные промежуточные результаты: df: 240102 10:58:20 ИНФОРМАЦИЯ: длина N участков фермента 240102 10:58:20 ИНФО: 0 аааи все 10 238045 240102 10:58:20 ИНФО: 1 АааИ все 20 170393 240102 10:58:20 ИНФО: 2 AaaI захвачено 10 292735 240102 10:58:20 ИНФО: 3 AaaI захвачено 20 229824 Связано:

Ничто из этого не достигает того, что я пытаюсь сделать, но оно приближается:
[*]Как распечатать многострочные журналы с помощью модуля журналирования Python? - см. этот комментарий, который аккуратен, но не очень питоничен, поскольку он вызывает print изнутри понимания списка, а затем отбрасывает результат: "Обратите внимание, что последний работает только на py2 из-за чтобы отображать лениво; вы можете сделать [logger.info(line) for line in 'line 1\nline 2\nline 3'.splitlines()] на py3. – Кюухати, 22 июня 2021 г., 16:30" [*]Записать или зарегистрировать вывод данных pandas Dataframe — он печатает что-то вроде этого, то есть в начале каждой строки отсутствуют метаданные временной метки/уровня: 240102 12:27:19 ИНФОРМАЦИЯ: заголовок кадра данных - длина N областей фермента 0 аааи все 10 238045 1 аааи все 20 170393 2 AaaI захватили 10 292735 ... [*]Как записать кадр данных в выходной файл — то же, что и в предыдущем ответе.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ведение журнала Python: создайте журнал, если он не существует, или откройте и продолжите ведение журнала, если он сущес
    Anonymous » » в форуме Python
    0 Ответы
    47 Просмотры
    Последнее сообщение Anonymous
  • Ведение журнала Python, цветное ведение журнала
    Anonymous » » в форуме Python
    0 Ответы
    41 Просмотры
    Последнее сообщение Anonymous
  • Ведение журнала Python, цветное ведение журнала
    Anonymous » » в форуме Python
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Ведение журнала Python, цветное ведение журнала
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Ведение журнала Python, цветное ведение журнала
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»