タグ

pandasに関するotani0083のブックマーク (35)

  • たった数行でpandasを高速化する2つのライブラリ(pandarallel/swifter) - フリーランチ食べたい

    pandas はデータ解析やデータ加工に非常に便利なPythonライブラリですが、並列化されている処理とされていない処理があり、注意が必要です。例えば pd.Sereis.__add__ のようなAPI(つまり df['a'] + df['b'] のような処理です)は処理が numpy に移譲されているためPythonのGILの影響を受けずに並列化されますが、 padas.DataFrame.apply などのメソッドはPythonのみで実装されているので並列化されません。 処理によってはそこがボトルネックになるケースもあります。今回は「ほぼimportするだけ」で pandas の並列化されていない処理を並列化し高速化できる2つのライブラリを紹介します。同時に2つのライブラリのベンチマークをしてみて性能を確かめました。 pandarallel pandaralell はPythonの m

    たった数行でpandasを高速化する2つのライブラリ(pandarallel/swifter) - フリーランチ食べたい
  • [ついにメジャーアップデート]Pandas1.0.0rcのアップデート内容を色々調べてみた - Qiita

    ついにPandasの1.0.0rc版が公開されたようなので、早速アップデート内容の確認や挙動を試していきたいと思います。 元のツイート : Pandas 1.0.0rc0 is now available for testing! Please try it out and report any issues.https://t.co/iTjBtzy3WA — pandas (@pandas_dev) January 10, 2020 TLDR 極端にがらっと変わったという感じでもありませんが、細かいところが色々とたくさんブラッシュアップされたような印象を受けました。 整数の列に欠損値が含まれていた際に、カラムの型を整数のまま保持するためのpd.NAのシングルトンが追加された。 文字列のカラムがobjectではなく文字列専用の型を指定できるようになった。 真偽値のカラムでも、カラムの型を維

    [ついにメジャーアップデート]Pandas1.0.0rcのアップデート内容を色々調べてみた - Qiita
    otani0083
    otani0083 2020/01/20
    文字列専用のカラム、マークダウン出力はいいね。
  • Pandasで行うデータ処理を100倍高速にするOut-of-CoreフレームワークVaex - フリーランチ食べたい

    TL;DR アウトオブコア、かつマルチコアでデータ処理を行えるVaexの紹介です。 string関係のメソッドで平均して100倍以上の高速化が確認できました。(作者のベンチマークだと最大1000倍) 文字列処理以外でも数倍~数十倍の高速化が行えそうです。 この記事では性能の比較のみ行い、解説記事は別で書こうと思います。 pandasより1000倍早いフレームワーク? 今週、興味深い記事を読みました。重要な部分だけ抜き出すと次のような内容です。 Vaexの最近のアップデートでの文字列処理が超早くなった 32コアだとpandasと比べて1000倍早い towardsdatascience.com 1000倍って当なの?って感じですよね。そもそも自分はVaex自体を知らなかったので調べてみました。 ちなみに調べていて気づいたのですが、この記事の著者はVaexの作者なんですよね。 疑っているわけ

    Pandasで行うデータ処理を100倍高速にするOut-of-CoreフレームワークVaex - フリーランチ食べたい
    otani0083
    otani0083 2019/04/14
    面白い
  • 【翻訳】Minimally Sufficient Pandas(全文) - Qiita

    Overview この記事は pandasクックブック-―Pythonによるデータ処理のレシピ の著者である Ted Petrou 氏の以下の記事、 Minimally Sufficient Pandas を、許諾を得て翻訳したものです。 https://twitter.com/arc279/status/1095511875050033152 不自然な点、間違っている点などがありましたら指摘してもらえると助かります。 リポジトリはここにあります。 また、長文のため、具体例だけざっくり訳した版も用意しました。 以下、翻訳です。 Minimally Sufficient Pandas(必要最低限の Pandas) この記事では、データ分析にpandasを使用する際の、私の最適と思う意見を提案します。 私の目的は、データ分析のほとんどのケースでは、ライブラリの一部の機能だけで十分であることを主

    【翻訳】Minimally Sufficient Pandas(全文) - Qiita
  • うわっ…私のpandas、遅すぎ…?って時にやるべきこと(先人の知恵より) - Lean Baseball

    ※あくまでもイメージです(適当) 仕事じゃなくて、趣味の方の野球統計モデルで詰まった時にやったメモ的なやつです.*1 一言で言うと、 約19万レコード(110MBちょい)のCSVの統計処理を70秒から4秒に縮めました. # 最初のコード $ time python run_expectancy.py events-2018.csv RUNS_ROI outs 0 1 2 runner 0_000 0.49 0.26 0.10 1_001 1.43 1.00 0.35 2_010 1.13 0.68 0.32 3_011 1.94 1.36 0.57 4_100 0.87 0.53 0.22 5_101 1.79 1.21 0.50 6_110 1.42 0.93 0.44 7_111 2.35 1.47 0.77 python run_expectancy.py events-2018.c

    うわっ…私のpandas、遅すぎ…?って時にやるべきこと(先人の知恵より) - Lean Baseball
  • pythonでのデータ分析時、死ぬほど調べるTipsをまとめておく。 - プロクラシスト

    こんにちは、ほけきよです。 pythonでデータを取り扱っているとき「あれ、これどうやるんだっけ??」 ってなること、ありませんか?僕は10分に1回程度なります。 いや、覚えろと自分でも思うんですが、覚えられないんですよね。100回くらい同じコマンドを調べてたりする。 物覚えが良くないので、ココを見れば絶対大丈夫なようにしておこうと思い、まとめてみました。 jupyterで最初に開くときに読み込むモジュールたち datetime 日付⇔文字列の変換 datetimeの足し算引き算 json dict型⇔json jsonファイルの入出力 datetimeをjsonにする時、エラーが出る pandas ~以外を表すやつ andとor inf弾く リストをdfにサクッと変換 datetimeとして読み込み 読み込み時にcodecのエラーが出る DataFrameのfor文 numpy lins

    pythonでのデータ分析時、死ぬほど調べるTipsをまとめておく。 - プロクラシスト
  • pandasで1000万件のデータの前処理を高速にするTips集 - Qiita

    はじめに 当社にアルバイトに来ていた人(来春に新卒入社の予定)に「pandasを高速化するための情報は無いですか?」と尋ねられました。 このパッケージの使い方は多数の書籍やWebで体系立った記事で書かれています。 しかし、高速化に関しては体系的な情報源が思いつかなかったので、「実際に書いてみて、1つ1つチューニングするしかないです」としか答えられませんでした。 そこで、この方を始め、来春(2019年4月)にデータアナリストまたはデータサイエンティストになる新卒へ向けて、pandasの高速化に関する私の経験をTips集にしてお伝えしたいと思います。 この記事は今後も内容を充実させるために、Tipsを追加していきます。 この記事を読んだ後にできるようになること pandasでレコード数1000万件のデータでも1分以内で完了する前処理が書けるようになります。 その結果、1日中実行し続けなければな

    pandasで1000万件のデータの前処理を高速にするTips集 - Qiita
  • 時間のかかる前処理をDaskで高速化 - ぴよぴよ.py

    最近仕事で自然言語処理を使ったモデルを作成していたんですが、 前処理やモデルを作る際に数分〜数十分単位の処理待ちの空き時間が頻繁に発生してしまい、 その度集中力が切れる問題に悩まされていました。 モデルの学習に時間がかかってしまうのはまた別の解決策を考えるとして、 今回は時間のかかる前処理をDaskをつかって高速化した方法をお話ししようと思います。 この記事は PyLadies Advent Calendar 2018 - Adventar の18日目の記事になります。 Daskとは? Daskとは、numpyやpandasなどのデータを簡単に並列計算するライブラリ。 あまり公式のチュートリアルがわかりやすくない(気がする)ので、基的な使い方は Python Dask で 並列 DataFrame 処理 - StatsFragments を見てみると良い。 サンプルデータ 今回はKagg

    時間のかかる前処理をDaskで高速化 - ぴよぴよ.py
  • 時系列のcsvデータを、pandasで簡単に移動平均を取る

    目的 以下のようなときに使える方法です オシロスコープやらデータロガーから吸い出したcsvデータのノイズを落として見やすくする web上から取得した時系列データのcsvデータについて、大きな傾向を見るために細かい動きをフィルタする 環境 python pandas Anacondaを入れておけはなんとかなる 方法 "hoge.csv"というデータファイルがあり、その中に"ch1"というデータ列があったとすると、以下の方法で、"ma"列に過去10データの移動平均が入ります。 変数windowを変えると、移動平均区間を変えられます

    時系列のcsvデータを、pandasで簡単に移動平均を取る
  • python pandasの使い方メモ | おいしいブログ

    統計だデータサイエンスだ機械学習だディープラーニングだと色々言われてもう結構経つわけですが、これまでそれなりに興味がありつつ都度調べたりを読んだりしていました。ですがまぁ実際に仕事などで必要に迫られるわけでもなく、なんだかんだ目の前に積まれているやらなければいけない事に押し潰されてしまい、重要緊急の4象限でいう「重要だが緊急でない」ところに追いやられてしまっているうちに忘却の彼方に飛んでいくというやつを繰り返していました。この先、いきなり必要に迫られて慌てたり、表面的な事だけさらってやり過ごすなんてことにならないように、この「重要だが緊急でない」事にちゃんと時間を使わないといけないな〜ということで、今更ながらにこの手の事を残していこうかなと。大丈夫。まだ慌てるような時間じゃぁ〜ない。 ということで、データをこねるにしてもそのこねるツールが手に馴染んでいないとこねるにこねられないので、まず

    python pandasの使い方メモ | おいしいブログ
  • Pandas 公式チートシートを翻訳しました - Qiita

    インターンに来る学生に Python の pandas の操作に慣れてもらうため、公式チートシート1 を翻訳しました。ざっとググった限りでは、R 関係のチートシートの翻訳は見かけますが pandas のは見つかりませんでした。どうやら邦初の日語版らしいので、一般公開します。 体は github にあります。pptx 版もあるので編集も容易です。 https://github.com/Gedevan-Aleksizde/pandas-cheat-sheet-ja 2019/7/26: 公式チートシートを踏まえて, 応用的な使い方について書きました. https://qiita.com/s_katagiri/items/cc0bceddbbf84eb08d18

    Pandas 公式チートシートを翻訳しました - Qiita
  • Kaggleで使えるpandasテクニック集 - 天色グラフィティ

    PythonでKaggleなどのデータ分析を行う際、pandasでゴリゴリ作業をすることが多いかと思います。 最近知って「めっちゃ便利やん!」ってなったものをまとめておきたいと思います。 全部の関数にドキュメントへのリンクを付けたので参考にしてください。 今回も検証にはTitanicのデータセットを用います。また、文中でのdf.hoge()はpandasのDataFrameのメソッドであることを、pd.hoge()はpandasの関数であることを表します。 df = read_csv('input/train.csv', index_col=0) print(df.shape) df.head() 最低限押さえておきたいやつら まずはここから。 10 Minutes to pandas よく使うやつら。詳しい解説は省略するので、ドキュメントのリンク先を見てください。 関数 内容 リンク d

    Kaggleで使えるpandasテクニック集 - 天色グラフィティ
  • 【Pythonメモ】pandas-profilingが探索的データ解析にめちゃめちゃ便利だった件 - Qiita

    当たり前の話だったら超恥ずかしいのですが、初めて知って驚愕したのでご紹介。 タイトルのとおり、pandas-profilingが探索的データ解析(EDA)にめちゃめちゃ便利だったのでご紹介するだけの記事です。 pandas-profilingの詳細はこちらからご確認を。 pandas-profiling 準備 pipやAnacondaを使うなどして、適宜ご自身の環境にインストール。

    【Pythonメモ】pandas-profilingが探索的データ解析にめちゃめちゃ便利だった件 - Qiita
  • データ分析で頻出のPandas基本操作 - Qiita

    はじめに 機械学習や深層学習が人気の昨今ですが、それらのモデルの精度に最もクリティカルに影響するのはインプットするデータの質です。データの質は、データを適切に把握し、不要なデータを取り除いたり、必要なデータを精査する前処理を行うことで高めることができます。 頁では、データ処理の基ツールとしてPandasの使い方を紹介します。Pandasには便利な機能がたくさんありますが、特に分析業務で頻出のPandas関数・メソッドを重点的に取り上げました。 Pandasに便利なメソッドがたくさんあることは知っている、でもワイが知りたいのは分析に最低限必要なやつだけなんや…!、という人のためのPandasマニュアルです。 また、単に機能を説明するだけでは実際の処理動作がわかりにくいため、ここではSIGNATE(旧DeepAnalytics)のお弁当の需要予想を行うコンペのデータを拝借し、このデータに対

    データ分析で頻出のPandas基本操作 - Qiita
  • pandas.DataFrame のforループをゆるふわ△改良して300倍高速化する - くないらぼ

    主張:高速化は最後のおたのしみにしましょう。 無駄にいじいじして高速化させて満足し、結局その後はほとんど使わなかったなあ、、、が私の日常です。 えらい人も言っていますが、高速化なんてホント最後でいいんです・・・。 今まで何十回後悔したことか。。。(これからもまたやりますが。) pythonであれば numba,cython,swig など、コンパイルしちゃう系の力(パワー)を借りることで、 全く同じアルゴリズムでもざっくり100倍単位で簡単に高速化できます。 しかし、このやり方ではpythonのインタープリターなゆるふわ△言語の良さを(該当コード部分において)捨ててしまいます。結局C/C++に魂を売っているだけです。 私は魂を売ることそれ自体が好きなので良いですが、この行為はpythonの持つ別の面での高速性、つまり "生産性の高さ" を犠牲にしています。 コードの実行スピードが速くなって

    pandas.DataFrame のforループをゆるふわ△改良して300倍高速化する - くないらぼ
  • Python Pandas を Excel代わりに利用してデータ操作 - Qiita

    Pandas での データ操作 最近は利用するデータも巨大化しているため、Excelで開くのも大変です。 結構 Excelでは開けない、もしくは開くと Excelが重すぎて操作できないデータが結構あります。 Python の Pandas ライブラリを活用してExcelでのデータ操作を代替してみたいと思います。 Pandas の導入やファイル読み込みに関してはこの文書では説明しませんので、以下のリンク先を参照してください。 - Pandas の導入とデータ型 - Qiita - Pandas で様々なファイルを読み込み操作する - Qiita データ取得先 機械学習が認知されてきたせいか、オープンデータが多くなってきています。 東京都もいくつかのデータを公開しています。 東京都オープンデータカタログサイトホームページ ちょと東京都の公開するExcelはデータ処理目的だと不便なのでCSVを加

    Python Pandas を Excel代わりに利用してデータ操作 - Qiita
  • pythonでデータ処理(ファイルから読み込んだり、mongoDBに保存したり) - Qiita

    データを扱う作業を行う場合、pythonだとかなりシンプルに実現できるので、まとめます。 大体は下記のケースが多いと思います。 1.ファイルに出力されたデータを読み込む 2.データベースに保存する 3.データベースから読み込む ここでは、mongoDBの例を挙げます。 ごちゃごちゃ言わずに、まずソースを見たい方はこちらを利用ください 1.ファイルに出力されたデータを読み込む 普通にやると、openして1行ずつ読み込んで、delimiter(区切り文字)で区切って、、と地味に面倒です。 pythonでは、pandas.read_csvライブラリを活用することで非常に簡単に実現できます。(TSVでも他形式でも。sep=**でdelimiter指定します) import pandas as pd def save_data_from_file(file_name, delimiter, flg_

    pythonでデータ処理(ファイルから読み込んだり、mongoDBに保存したり) - Qiita
  • 野球データ分析を支えるPythonなノウハウ〜Jupyter notebookとpandas,SQLを添えて - Lean Baseball

    ※2017/12/19 20:45 この分析結果の詳細スライドを追加 Top写真(サムネイル)は雰囲気です,あまり気にしなくてOK.*1 Jupyter Advent Calendar 2017 19日目の記事です. ここでは,年私がやった野球ネタの主に分析環境まわりについての話をサンプルや選定理由を絡めて紹介します. 日開催されたBaseball Play Study 2017冬の発表資料「うわっ...アイツの年俸、高すぎ...?」を作った時のコードスニペットから作成しています. speakerdeck.com Python初学者〜中級者および,私と同じく野球が好きでたまらないンゴな方の参考になると嬉しいです. 上級者および強者の方には是非もっといい方法があったらコメント頂けると嬉しいです. 申し遅れましたこんにちは,私が「野球の人」ことshinyorke(シンヨーク)です. この記

    野球データ分析を支えるPythonなノウハウ〜Jupyter notebookとpandas,SQLを添えて - Lean Baseball
  • Pandasを使ったデータ操作の基本 - ぴよぴよ.py

    データ分析の会社に転職してから3ヶ月。 最初の1ヶ月はPandasの扱いに当に困ったので、 昔メモしてたことを簡単にブログに記録しておく(o ・ω・)ノ 【追記】2017/07/31 0:36 データが一部間違ってたので修正しました Pandasとは pandasでよく使う型 テストデータについて 余談 Pandasでのデータ操作入門 pandasのload データ(csv)のロード データのサイズ データのカラム 行列から必要な列(カラム)を取り出す 条件にマッチするデータを取り出す 1. DataFrame.queryで取り出す True/FalseのSeries型を指定し、Trueの行だけを取り出す 追記(2017/12/14) 行列から必要な行番号を指定してを取り出す グループ分けと集計 新たな列を追加する 固有値を追加する 他の列を加工して新たな列を作る 他の複数列を加工して新

    Pandasを使ったデータ操作の基本 - ぴよぴよ.py
  • Pandasで特徴量取得する場合に使う操作をまとめてみた - のんびりしているエンジニアの日記

    皆さんこんにちは お元気ですか。私は元気です。 分析は基的にPythonを使って行います。(大体Pandasですが・・・) Pandasを利用すると色々できます。が、ふとどうするんだっけ処理が増えていきました。 自分のメモがてらカテゴリを分けて記録に残したいと思います。 最後のほうは特徴量の作り方集になっています。 Kaggleで実際に使ったことがある処理も数多く掲載しました。 思いついたら随時、追加しようと思います。 準備 ファイル操作 読み込み 書き込み テーブル操作 1行ごとに処理をする。 複数列を取得する。 選択操作 テーブル条件の指定 複数条件の指定 NaNを埋める。 カラム、テーブルの統計情報を取得する。 完全一致の列を発見し、除去する。 日付操作 日付から日などの情報を取得する。 2つ以上のDataFrameの結合操作 内部結合 外部結合 2つの結合処理 集計操作を使った特

    Pandasで特徴量取得する場合に使う操作をまとめてみた - のんびりしているエンジニアの日記