Вы очень близки к тому, чтобы исправить свой код с помощью stack
df_pivot.stack(level=0)
Out[682]:
obs_date 2017-09-12 2019-09-19 2019-09-26
orig_date
2019-09-12 balance 1700.0 1750.0 1650.0
payments 200.0 0.0 100.0
2019-09-19 balance NaN 1235.0 950.0
payments NaN 0.0 300.0
2019-09-26 balance NaN NaN 3435.0
payments NaN NaN 50.0
. Обновление, поскольку эти ответы слегка устарели (хотя некоторые все еще применяются).
Простая функция, добавленная в рельсы 2.3.4, БД / SEEDS.RB
Обеспечивает новую задачу разъема
rake db:seed
хорошо для заполнения обычных статических записей, таких как состояния, страны и т. Д. ...
http: // Railscasts.com/episodes/179-seed-data
*snote, что вы можете использовать приспособления, если вы уже создали их, чтобы также заполнить с помощью DB: SEED PADUCE, выдвинув следующую в файл SEEDS.RB (из Railscast Эпизод):
require 'active_record/fixtures'
Fixtures.create_fixtures("#{Rails.root}/test/fixtures", "operating_systems")
для Rails 3.x Используйте «ActiveReCord :: Световые приспособления» вместо константы «Приспособления»
require 'active_record/fixtures'
ActiveRecord::Fixtures.create_fixtures("#{Rails.root}/test/fixtures", "fixtures_file_name")
Добавьте его в миграцию базы данных, чтобы каждый получил его при обновлении. Обработайте всю свою логику в коде ruby / rails, чтобы вам никогда не приходилось связываться с явными настройками идентификатора.
Лучший способ - использовать светильники.
Примечание: имейте в виду, что приборы делают прямые вставки и не используют вашу модель, поэтому, если у вас есть обратные вызовы, которые заполняют данные, вам нужно будет найти обходной путь.
factory_bot звучит так, как будто это сделает то, чего вы пытаетесь достичь. Вы можете определить все общие атрибуты в определении по умолчанию, а затем переопределить их во время создания. Вы также можете передать идентификатор на завод:
Factory.define :theme do |t|
t.background_color '0x000000'
t.title_text_color '0x000000',
t.component_theme_color '0x000000'
t.carrier_select_color '0x000000'
t.label_text_color '0x000000',
t.join_upper_gradient '0x000000'
t.join_lower_gradient '0x000000'
t.join_text_color '0x000000',
t.cancel_link_color '0x000000'
t.border_color '0x000000'
t.carrier_text_color '0x000000'
t.public true
end
Factory(:theme, :id => 1, :name => "Lite", :background_color => '0xC7FFD5')
Factory(:theme, :id => 2, :name => "Metallic", :background_color => '0xC7FFD5')
Factory(:theme, :id => 3, :name => "Blues", :background_color => '0x0060EC')
При использовании с фейкером он может очень быстро заполнить базу данных ассоциациями, не беспокоясь о Fixtures (гадость).
У меня есть подобный код в рейке.
100.times do
Factory(:company, :address => Factory(:address), :employees => [Factory(:employee)])
end