Создание нулевого заполненного кадра данных панд

Каков наилучший способ создания нулевого заполненного кадра данных pandas заданного размера?

Я использовал:

zero_data = np.zeros(shape=(len(data),len(feature_list))) d = pd.DataFrame(zero_data, columns=feature_list) 

Есть ли лучший способ сделать это?

5 Solutions collect form web for “Создание нулевого заполненного кадра данных панд”

Вы можете попробовать следующее:

 d = pd.DataFrame(0, index=np.arange(len(data)), columns=feature_list) 

Лучше всего это делать с numpy по-моему

 import numpy as np d = pd.DataFrame(np.zeros((N_rows, N_cols))) 

Предполагая наличие шаблона DataFrame, который нужно скопировать с нулевыми значениями, заполненными здесь …

Если у вас нет NaN в вашем наборе данных, умножение на ноль может быть значительно быстрее:

 In [19]: columns = ["col{}".format(i) for i in xrange(3000)] In [20]: indices = xrange(2000) In [21]: orig_df = pd.DataFrame(42.0, index=indices, columns=columns) In [22]: %timeit d = pd.DataFrame(np.zeros_like(orig_df), index=orig_df.index, columns=orig_df.columns) 100 loops, best of 3: 12.6 ms per loop In [23]: %timeit d = orig_df * 0.0 100 loops, best of 3: 7.17 ms per loop 

Улучшение зависит от размера DataFrame, но никогда не находило его медленнее.

И просто для этого:

 In [24]: %timeit d = orig_df * 0.0 + 1.0 100 loops, best of 3: 13.6 ms per loop In [25]: %timeit d = pd.eval('orig_df * 0.0 + 1.0') 100 loops, best of 3: 8.36 ms per loop 

Но:

 In [24]: %timeit d = orig_df.copy() 10 loops, best of 3: 24 ms per loop 

РЕДАКТИРОВАТЬ!!!

Предполагая, что у вас есть фрейм с использованием float64, это будет самым быстрым с огромным отрывом! Он также может генерировать любое значение, заменяя 0.0 на желаемый номер заполнения.

 In [23]: %timeit d = pd.eval('orig_df > 1.7976931348623157e+308 + 0.0') 100 loops, best of 3: 3.68 ms per loop 

В зависимости от вкуса, внешне можно определить nan и сделать общее решение, независимо от конкретного типа float:

 In [39]: nan = np.nan In [40]: %timeit d = pd.eval('orig_df > nan + 0.0') 100 loops, best of 3: 4.39 ms per loop 

Подобно @Shravan, но без использования numpy:

  height = 10 width = 20 df_0 = pd.DataFrame(0, index=range(height), columns=range(width)) 

Затем вы можете делать с ним все, что хотите:

 post_instantiation_fcn = lambda x: str(x) df_ready_for_whatever = df_0.applymap(post_instantiation_fcn) 

Если у вас уже есть dataframe, это самый быстрый способ:

 In [1]: columns = ["col{}".format(i) for i in range(10)] In [2]: orig_df = pd.DataFrame(np.ones((10, 10)), columns=columns) In [3]: %timeit d = pd.DataFrame(np.zeros_like(orig_df), index=orig_df.index, columns=orig_df.columns) 10000 loops, best of 3: 60.2 µs per loop 

По сравнению с:

 In [4]: %timeit d = pd.DataFrame(0, index = np.arange(10), columns=columns) 10000 loops, best of 3: 110 µs per loop In [5]: temp = np.zeros((10, 10)) In [6]: %timeit d = pd.DataFrame(temp, columns=columns) 10000 loops, best of 3: 95.7 µs per loop 
  • Как добавить условно к выбору ячеек в столбце dataframe pandas, когда столбец представляет собой серию списков?
  • Маркировка событийных точек на участке Панды
  • Условно формат Pandos pandas cell
  • Пользовательская сортировка в кадре данных pandas
  • Python Pandas проверяет, происходит ли значение более одного раза в тот же день
  • pandas data frame - выбрать строки и очистить память?
  • Как объединить данные столбца с одним и тем же значением и суммировать его конкретные данные
  • matplotlib savefig () управление размером
  •  
    Interesting Posts for Van-Lav

    OpenCV Python Bindings для алгоритма GrabCut

    Как сравнить две строки в python?

    данные участка из файла CSV с matplotlib

    Многие-ко-многим в sqlalchemy. Предотвращение вставки SQLAlchemy в таблицу, если тег уже существует

    случайная переменная из перекошенного распределения с scipy

    Как вставить matplotlib в pyqt – для чайников

    Импортировать общие модули по умолчанию при компиляции SCSS

    Когда я печатаю символы, отличные от ASCII, с помощью клавиатуры Windows, я получаю «?»

    Python – преобразовать элементы частичного подсети в int

    Python Pandas – возвращает результаты функции groupby обратно в родительскую таблицу

    Как я могу украсить метод экземпляра классом декоратора?

    Преобразование строки, разделенной запятой, в список

    функция генератора для анимации matplotlib

    Простой учебник для Neo4J и его использование с помощью django + python

    Должен ли я создать целый новый массив для хранения результатов свертки?

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