Ruby on Railsでデータの並び順を変えて表示する
1. はじめに
普段SQLを書く機会があるのですが、Railsを勉強し始めた時は逆にActiveRecordという概念がわかりにくかったです。
2. 並び順の変更
select * from post order by updated_at desc
例えば、上記のSQLは以下のようになります。
Post.order('updated_at desc') or Post.order(updated_at: :desc)
短いですが以上です。
Ruby on Railsの環境変数管理にFigaroを使用する
初めに
アプリケーションを開発している時に「username」や「password」、「api_key」等をどのように管理すればいいのか疑問に思ったのでメモ。
まずそれらの環境変数を直接設定ファイルに記入して、パブリックなリポジトリに公開するのは大切な情報が外部から丸見えなので危険です。
今回は環境変数を簡単に管理することができる「Figaro」というライブラリ(gem) を使って変数管理をしたいと思います。
1. Figaro gemのインストール
Gemfileに以下を追記
gem 'figaro'
以下のコマンドを実行し 、figaroをインストールする
bundle exec figaro install
そうすると、新しく「config/application.yml」というファイルが生成され、
それと同時に上記ファイルがリモートリポジトリにpushされるのを防ぐため「.gitignore」に追記されます。
2. 「config/application.yml」に環境変数を設定する
USERNAME: sample_username development: USERNAME: dev_sample_username production: USERNAME: prd_sample_username
※上記のように環境に応じて設定しておくと、同じ変数を使い分けてくれます。
使用する時は、ENV["USERNAME"]のような形で使用することができます。
numpyとpandasのデータ変換がややこしいので整理する
numpyとかpandasとかややこしいので簡単に整理します。
はじめに
先々月くらいから突然機械学習にハマり、独学で勉強をしているtontekiです。
一通り基礎的な内容は勉強したので、kaggle(データサイエンスのコンペサイト)でデータ予測をする中で、より実践的な内容を勉強しようと思っています。
で早速有名な「Digit Recognizer」と呼ばれる、0〜9の数字を認識するコンペに参加したのですが、
実際自分で考えながらやってみるとnumpyとpandasのデータの変換に苦戦したので、学んだことを纏めたいと思います。
pandasからnumpyへの変換
# 0 ~ 9 のnumpy配列を生成 [In] numpy_array = np.arange(10)p numpy_array [Out] [0 1 2 3 4 5 6 7 8 9] # データの型を表示 [In] type(numpy_array) [Out] <class 'numpy.ndarray'> # numpy配列をpandasのseriesに変換 [In] series_array = pd.Series(numpy_array_1) series_array [Out] 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 dtype: int64 # データの型を表示 [In] type(series_array) [Out] pandas.core.series.Series # 0 ~ 19 の2次元のnumpy配列を生成 [In] numpy_array_2 = np.arange(20).reshape(4, 5) # 2次元のnumpy配列をpandasのDataFrameへ変換 [In] pandas_array = pd.DataFrame(numpy_array_2) pandas_array [Out] 0 1 2 3 4 0 0 1 2 3 4 1 5 6 7 8 9 2 10 11 12 13 14 3 15 16 17 18 19
numpyからpandasへの変換
# pandasのDataFrameからnumpyへ変換 [In] numpy_array = pandas_array.values numpy_array [Out] array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]]) # データの型を表示 [In] type(numpy_array) [Out] numpy.ndarray
終わりに
自分が今どっちのデータを扱っているかわからなくなった時は、「typeメソッド」を使うといいですね。
ものすごい基礎中の基礎な内容ですが、今後いろんなデータを扱う中で、意識せずにスムーズにデータ変換できるようになりたいです。