Информация Panda () для HTML

Pandas предлагает некоторые сводные статистические данные с помощью функции describe() называемой DataFrame . Выходной функцией является другой DataFrame , поэтому он легко экспортируется в HTML с вызовом to_html() .

Он также предлагает информацию о DataFrame с DataFrame info() , но это распечатывается, возвращая None . Есть ли способ получить ту же информацию, что и DataFrame или любой другой способ, который можно экспортировать в HTML?

Вот пример info() для справки:

 <class 'pandas.core.frame.DataFrame'> RangeIndex: 5 entries, 0 to 4 Data columns (total 7 columns): 0 5 non-null float64 1 5 non-null float64 2 5 non-null float64 3 5 non-null float64 4 5 non-null float64 5 5 non-null float64 6 5 non-null float64 dtypes: float64(7) memory usage: 360.0 bytes 

4 Solutions collect form web for “Информация Panda () для HTML”

Я пытаюсь переписать другое решение с помощью StringIO , также необходимо использовать getvalue() с split :

 from pandas.compat import StringIO frame = pd.DataFrame(np.random.randn(100, 3), columns =['A', 'B', 'C']) a = StringIO() frame.info(buf = a) # Example to convert to html contents = a.getvalue().split('\n') with open("test_pandas.html", "w") as e: for lines in contents: e.write("<pre>" + lines + "</pre> <br>\n") 

Решением может быть сохранение вывода информации () в записываемый буфер (с использованием аргумента buf ), а затем преобразование в html .

Ниже пример использования файла txt в качестве буфера, но это можно легко сделать в памяти с помощью StringIO .

 import pandas as pd import numpy as np frame = pd.DataFrame(np.random.randn(100, 3), columns =['A', 'B', 'C']) _ = frame.info(buf = open('test_pandas.txt', 'w')) #save to txt # Example to convert to html contents = open("test_pandas.txt","r") with open("test_pandas.html", "w") as e: for lines in contents.readlines(): e.write("<pre>" + lines + "</pre> <br>\n") 

Вот как выглядит txt:

введите описание изображения здесь

Вариант с использованием StringIO можно найти в ответе @jezrael, поэтому, вероятно, нет смысла обновлять этот ответ.

 import StringIO output = StringIO.StringIO() #Write df.info to a string buffer df.info(buf=output) #put the info back to a dataframe so you can use df.to_html() df_info = pd.DataFrame(columns=['DF INFO'], data=output.getvalue().split('\n')) df_info.to_html() 

Вводя все эти замечательные ответы, я в итоге сделал следующее:

  • Удалите первые три и последние две строки, потому что они содержат информацию о памяти и другие вещи, которые не находятся в табличном формате (и фиксированное количество строк)
  • Преобразуйте информацию о столбцах ( datatype в фрагменте ниже) в базу StringIO pandas DataFrame, используя StringIO
  • Переименовали столбцы «count», «null» и «dtype»
  • Вернул html информации о столбцах и обычный текст оставшихся выровненных (первые 3 и последние 2)

Таким образом, результат:

 def process_content_info(content: pd.DataFrame): content_info = StringIO() content.info(buf=content_info) str_ = content_info.getvalue() lines = str_.split("\n") table = StringIO("\n".join(lines[3:-3])) datatypes = pd.read_table(table, delim_whitespace=True, names=["column", "count", "null", "dtype"]) datatypes.set_index("column", inplace=True) info = "\n".join(lines[0:2] + lines[-2:-1]) return info, datatypes 

Возможно, второй StringIO может быть упрощен, но в любом случае это достигает того, что мне нужно.

  • Python Pandas Как выбрать строки с одним или несколькими нулями из DataFrame без явного указания столбцов?
  • Утечка памяти с использованием кадра данных pandas
  • Фильтрация объектов Pandas groupby
  • Как написать / прочитать Pandas DataFrame с помощью MultiIndex из / в ASCII-файл?
  • эффективная матрица срочных документов с NLTK
  • Пользовательская сортировка с помощью Pandas
  • Сохранение графиков (AxesSubPlot), созданных из python pandas, с помощью savefig от matplotlib
  • MultiIndex / Перестановка различий между версиями Pandas
  • Условное удаление дубликатов pandas python
  • pandas: итеративная фильтрация строк DataFrame
  • pandas эффективный набор кадров данных
  •  
    Interesting Posts for Van-Lav

    Анализ данных на основе времени с помощью Python

    Как реализовать распределенную подобную очередь роль поверх хранилища данных RBDMS или NOSQL или другой системы обмена сообщениями (например, rabbitmq)?

    Celery / Redis выполняет одну и ту же задачу, выполняемую несколько раз параллельно

    Угловой маршрут не работает при использовании с Google App Engine и Flask

    Вызывать Python SimpleHTTPServer из командной строки без опции кеша

    Преобразование Unicode в python

    Доступ к нескольким клавиатурам, введенным C ++ (или python) в Linux

    Почему этот шаблон Python Borg / Singleton работает

    Эффективный расчет косинуса в питоне

    Как сохранить имена столбцов, начинающиеся с минуса при использовании numpy.genfromtxt?

    Разница между Kivy и Java для приложений для Android

    Исключения для Python: EAFP и что действительно исключительное?

    Как отправить текст в невидимое поле ввода

    Обнаруживать, когда модуль Python выгружается

    Аварии PyQt и безопасность потоков

    Python - лучший язык программирования в мире.