タグ

ブックマーク / sinhrks.hatenablog.com (15)

  • Python pandas データのイテレーションと関数適用、pipe - StatsFragments

    pandas ではデータを 列 や 表形式のデータ構造として扱うが、これらのデータから順番に値を取得 (イテレーション) して何か操作をしたい / また 何らかの関数を適用したい、ということがよくある。このエントリでは以下の 3 つについて整理したい。 イテレーション 関数適用 pipe (0.16.2 で追加) それぞれ、Series、DataFrame、GroupBy (DataFrame.groupbyしたデータ) で可能な操作が異なるため、順に記載する。 まずは必要なパッケージを import する。 import numpy as np import pandas as pd イテレーション Series Series は以下 2つのイテレーション用メソッドを持つ。各メソッドの挙動は以下のようになる。 __iter__: Series の値 ( values ) のみをイテレーシ

    Python pandas データのイテレーションと関数適用、pipe - StatsFragments
  • Python pandas データ選択処理をちょっと詳しく <前編> - StatsFragments

    概要 書いていて長くなったため、まず前編として pandas で データを行 / 列から選択する方法を少し詳しく書く。特に、個人的にはけっこう重要だと思っている loc と iloc について 日語で整理したものがなさそうなので。 サンプルデータの準備 import pandas as pd s = pd.Series([1, 2, 3], index = ['I1', 'I2', 'I3']) df = pd.DataFrame({'C1': [11, 21, 31], 'C2': [12, 22, 32], 'C3': [13, 23, 33]}, index = ['I1', 'I2', 'I3']) s # I1 1 # I2 2 # I3 3 # dtype: int64 df # C1 C2 C3 # I1 11 12 13 # I2 21 22 23 # I3 31 32

    Python pandas データ選択処理をちょっと詳しく <前編> - StatsFragments
  • pandas でメモリに乗らない 大容量ファイルを上手に扱う - StatsFragments

    概要 分析のためにデータ集めしていると、たまに マジか!? と思うサイズの CSV に出くわすことがある。なぜこんなに育つまで放っておいたのか、、、? このエントリでは普通には開けないサイズの CSV を pandas を使ってうまいこと処理する方法をまとめたい。 サンプルデータ たまには実データ使おう、ということで WorldBankから GDPデータを落とす。以下のページ右上の "DOWNLOAD DATA" ボタンで CSV を選択し、ローカルに zip を保存する。解凍した "ny.gdp.mktp.cd_Indicator_en_csv_v2.csv" ファイルをサンプルとして使う。 http://data.worldbank.org/indicator/NY.GDP.MKTP.CD?page=1 補足 pandas の Remote Data Access で WorldBan

    pandas でメモリに乗らない 大容量ファイルを上手に扱う - StatsFragments
    clavier
    clavier 2021/07/01
  • Python pandas パフォーマンス維持のための 3 つの TIPS - StatsFragments

    pandas でそこそこ大きいデータを扱う場合、その処理速度が気になってくる。公式ドキュメントではパフォーマンス向上のために Cython や Numba を使う方法を記載している。 Enhancing Performance — pandas 0.16.2 documentation が、軽く試したいだけなのに わざわざ Cythonや Numba を使うのは手間だし、かといってあまりに遅いのも嫌だ。そんなとき、pandas 来のパフォーマンスをできるだけ維持するためのポイントを整理したい。 pandas に限らず、パフォーマンス改善の際にはボトルネックの箇所によってとるべき対策は異なる。pandas では速度向上/エッジケース処理のために データの型や条件によって内部で処理を細かく分けており、常にこうすれば速くなる! という方法を出すのは難しい。以下はこの前提のうえで、内部実装からみ

    Python pandas パフォーマンス維持のための 3 つの TIPS - StatsFragments
  • PyConJP 2016: pandasでの時系列処理についてお話させていただきました - StatsFragments

    21日、22日と PyCon JP に参加させていただきました。ご参加いただいた皆様、スタッフの皆様ありがとうございました。資料はこちらになります。 pandas による時系列データ処理 pandas を使った時系列データの前処理と、statsmodels での時系列モデリングの触りをご紹介しました。 speakerdeck.com 時系列モデルの考え方については全く説明していないので、以下書籍などをご参照ください。 経済・ファイナンスデータの計量時系列分析 (統計ライブラリー) 作者: 沖竜義出版社/メーカー: 朝倉書店発売日: 2010/02/01メディア: 単行購入: 4人 クリック: 101回この商品を含むブログ (6件) を見る 元ネタ 以下のエントリをベースに新しい内容を追加しています。 sinhrks.hatenablog.com 時系列モデルを含む Python パッケ

    PyConJP 2016: pandasでの時系列処理についてお話させていただきました - StatsFragments
  • Python pandas + folium で Leaflet をもっと使いたい - StatsFragments

    先日参加させていただいた Japan.R でこんな話を聞いた。 RPubs - leafletではじめるRによる地図プロット Python でも folium というパッケージを使うと JavaScript を書かなくても Leaflet.js の一部機能が使えるのだがあまり情報がない。上の資料に書いてあるようなことが folium でもできるのか調べたい。 folium については前にこんなエントリを書いた。 sinhrks.hatenablog.com データの準備 import numpy as np np.__version__ # '1.10.2' import pandas as pd pd.__version__ # u'0.17.1' サンプルデータとして Wikipedia にある アメリカの国立公園 のデータを使う。まずは pd.read_html でデータを読みこむ。

    Python pandas + folium で Leaflet をもっと使いたい - StatsFragments
  • Python Jupyter + Cesium.js で 3D 地図が描きたい - StatsFragments

    Cesium.js とは Web GL を利用して 3D 地図を描画する JavaScript ライブラリ。かなり多機能で様々な見せ方ができるようだ。詳しく知りたい方は公式サイトの Demos を見ればいい。 cesiumjs.org これを Jupyter Notebook に埋め込んで使いたい。Cesium.js には Python の wrapper などはないため、直接 JavaScript を書いて使う。従って、利用できる機能に差異はない。このエントリでは Cesium.js の機能の詳細には触れず、Jupyter に関係する内容のみ記載する。 具体的なやり方はこちらと同じ。 sinhrks.hatenablog.com データの準備 先日のエントリで作成した、 アメリカの国立公園 のデータを使う。 sinhrks.hatenablog.com 以降、すべて Jupyter No

    Python Jupyter + Cesium.js で 3D 地図が描きたい - StatsFragments
  • Chainer + Dask で 並列 Deep Learning したい <1> - StatsFragments

    この記事は Chainer Advent Calendar 2015 17 日目の記事です。 はじめに サイズが大きいデータを Deep Learning すると学習に時間がかかってつらい。時間がかかってつらいので並列処理して高速化したい。 並列化するのに良さそうなパッケージないかな? と探してみると、Dask という並列 / Out-Of-Core 計算パッケージを見つけた。これと Chainer を組み合わせると並列処理が簡単に書けそうな気がする。 最初は MNIST を並列化してみたが、データが小さすぎるせいか むしろ遅くなってしまった。もう少し大きいデータである CIFAR-10 を使い、より深いネットワーク構造でその効果を確かめたい。 最終的には以下二つの処理を並列化することを目指す。 Data Augmentation DNN の学習 1. Data Augmentation

    Chainer + Dask で 並列 Deep Learning したい <1> - StatsFragments
  • {purrr} でリストデータを操作する <1> - StatsFragments

    R で関数型プログラミングを行うためのパッケージである {purrr}、すこし使い方がわかってきたので整理をしたい。RStudio のブログの記載をみると、とくにデータ処理フローを関数型のように記述することが目的のようだ。 purrr 0.1.0 | RStudio Blog The core of purrr is a set of functions for manipulating vectors (atomic vectors, lists, and data frames). The goal is similar to dplyr: help you tackle the most common 90% of data manipulation challenges. ここでいう"関数型プログラミング言語"とは Haskell のような静的型の言語を想定しており、型チェック、ガ

    {purrr} でリストデータを操作する <1> - StatsFragments
  • R パッケージを CRAN で公開する - StatsFragments

    少し前に 自作パッケージを CRAN で公開したのだが ブログに書くのを忘れていた。CRAN 公開時の注意点に関して、日語の説明があまりない / 情報が古いので簡単にまとめたい。 パッケージの作成 この資料を読みましょう。 東京R非公式おじさんが教える当に気持ちいいパッケージ作成法 from tera monagi www.slideshare.net 継続的インテグレーション (CI) Travis CI は R をサポート (community supportだが) しているため、.travis.yml に2行記載するだけで利用できる。CI 上でパッケージのチェック (R CMD check) も走るので利用したほうが楽。 Building an R Project - Travis CI 複数の環境でテストを実行したい場合、Travis CI では Build Matrix とい

    R パッケージを CRAN で公開する - StatsFragments
    clavier
    clavier 2015/11/22
  • Python Dask で 並列 DataFrame 処理 - StatsFragments

    はじめに 先日のエントリで少し記載した Dask について、その使い方を書く。Dask を使うと、NumPy や pandas の API を利用して並列計算/分散処理を行うことができる。また、Dask は Out-Of-Core (データ量が多くメモリに乗らない場合) の処理も考慮した実装になっている。 sinhrks.hatenablog.com 上にも書いたが、Daskは NumPy や pandas を置き換えるものではない。数値計算のためのバックエンドとして NumPy や pandas を利用するため、むしろこれらのパッケージが必須である。 Dask は NumPy や pandas の API を完全にはサポートしていないため、並列 / Out-Of-Core 処理が必要な場面では Dask を、他では NumPy / pandas を使うのがよいと思う。pandasとDas

    Python Dask で 並列 DataFrame 処理 - StatsFragments
  • Python geopandas + Bokeh で地理情報をプロットしたい - StatsFragments

    数日前、pandas を利用して地理情報をプロットするという非常によいエントリが翻訳されていた。 postd.cc 上のエントリ、前処理が手間に見えるが pd.read_html や .str アクセサを使えばもっと簡単に書けると思う、、、がそれは題でない。 pandas で地理情報を扱う場合、geopandas という拡張パッケージを利用すると便利なため、その使い方を書きたい。また、処理を Python で完結させるため、QGIS ではなく Bokeh でプロットしたい。 geopandas のインストール pip で。 $ pip install geopandas geopy このエントリでは依存パッケージである shapely、geopy の機能も利用する。shapely は自動的にインストールされるはずだが、geopy については上のように別途インストールが必要。 地理情報の読

    Python geopandas + Bokeh で地理情報をプロットしたい - StatsFragments
  • Python pandas 関連エントリの目次 - StatsFragments

    このブログ中の pandas 関連のエントリをまとめた目次です。 最近 pandas 開発チーム と PyData グループ の末席に加えていただき、パッケージ自体の改善にもより力を入れたいと思います。使い方についてご質問などありましたら Twitter で @ ください。 目次につけた絵文字は以下のような意味です。 🔰: 最初に知っておけば一通りの操作ができそうな感じのもの。 🚧: v0.16.0 時点で少し情報が古く、機能の改善を反映する必要があるもの。 🚫: 当該の機能が deprecate 扱いとなり、将来的に 代替の方法が必要になるもの。 基 簡単なデータ操作を Python pandas で行う 🔰 Python pandas でのグルーピング/集約/変換処理まとめ 🔰 また、上記に対応した比較エントリ: R {dplyr}, {tidyr} Rの data.tab

    Python pandas 関連エントリの目次 - StatsFragments
  • 簡単なデータ操作を PySpark & pandas の DataFrame で行う - StatsFragments

    Spark v1.3.0 で追加された DataFrame 、結構いいらしいという話は聞いていたのだが 自分で試すことなく時間が過ぎてしまっていた。ようやく PySpark を少し触れたので pandas との比較をまとめておきたい。内容に誤りや よりよい方法があればご指摘 下さい。 過去に基的なデータ操作について 以下 ふたつの記事を書いたことがあるので、同じ処理のPySpark 版を加えたい。今回は ひとつめの "簡単なデータ操作〜" に相当する内容。 pandas 版 簡単なデータ操作を Python pandas で行う - StatsFragments Python pandas でのグルーピング/集約/変換処理まとめ - StatsFragments 準備 環境は EC2 に作る。Spark のインストールについてはそのへんに情報あるので省略。サンプルデータは iris を

    簡単なデータ操作を PySpark & pandas の DataFrame で行う - StatsFragments
    clavier
    clavier 2015/04/28
    簡単なデータ操作を PySpark & pandas の DataFrame で行う - StatsFragments
  • Python pandas で日本の株価情報取得とローソク足チャート描画 - StatsFragments

    以下の記事を読んでいて、pandas 標準では日株式の情報が直接とれないことに気づいたのでやり方をまとめたい。 この記事では以下 2 点の処理について書く。 Yahoo! ファイナンス からの株価取得 ローソク足チャートの描画 補足 標準の v0.15.2 で簡単に動きをみているが、ちゃんとテストはしてない。特にローソク足チャートについては pandas の plot クラスにかなり依存しているため、バージョンが変わると動かなくなる可能性がある。 1. 株価の取得 まず、pandas には標準機能として外部サイトのデータを DataFrame で取得する機能 DataReader がある。DataReader では 日株の情報は直接はとれないが、簡単に動きを書いておく。 DataReader での取得 DataReader では、0.15.2 現在で以下 6 つのデータソースをサポート

    Python pandas で日本の株価情報取得とローソク足チャート描画 - StatsFragments
    clavier
    clavier 2015/02/10
    Python pandas で日本の株価情報取得とローソク足チャート描画 - StatsFragments
  • 1