タグ

pandasに関するmanabouのブックマーク (41)

  • DuckDBとPandasを使用したデータ分析の方法 – Kanaries

    PyGWalker CloudTurn your dataframe into an interactive web app with one click! DuckDBとPandasを使用したデータ分析の方法 データ分析には使用するツールによって結果が大きく異なる場合があります。それがDuckDBとPandasの役割です。これらのツールはデータ分析の世界で注目を集めつつあります。この記事では、これらのツールの使い方、それぞれの特徴、違い、そしてデータ分析のタスクを強化するためにこれらを組み合わせる方法について詳しく紹介します。 DuckDBとは まずはDuckDBについて説明します。DuckDBは、C++で書かれたインメモリの解析用データベースです。分析的なSQLクエリとデータ集約タスクをサポートするように設計されています。しかし、これが特筆すべき点ですが、DuckDBは高速です。当に

  • Pandasのメモリ削減方法を整理した - Taste of Tech Topics

    皆さんこんにちは 機械学習チーム YAMALEXチームの@tereka114です。最近、寒いので、鍋を中心にべて生きています。 検証段階でも、規模の大きなデータを扱う機会が増えてきて、Pandasのメモリ消費量が厳しいと感じてきたので、その削減や効率化のテクニックまとめたいと思いました。 有名なものからマイナーなものまで、思いつく限り書いてみます。 そもそもなぜ、Pandasのメモリ削減技術が必要なのか 準備 Pandasのメモリ削減 1. 型修正 2. 逐次読み込み 3. 読み込み時の型指定 4. 逐次読み込み&集約 5. 不要なものを読み込まない 6. 不要なカラム/DataFrameを消す 番外編:そもそもPandasを利用しない 最後に そもそもなぜ、Pandasのメモリ削減技術が必要なのか Pandasで扱うデータの多くのファイルはCSV,Parquet, JSON(JSONL

    Pandasのメモリ削減方法を整理した - Taste of Tech Topics
  • Pandasでnan値を削除、穴埋めするfillna、dropnaの使い方

    簡単な欠損値の確かめ方 欠損値を削除する方法 基的な使い方 全てが欠損値の行を削除する 削除したい列を指定する 変更を元のデータに反映させる 行あたりに残したいデータ数を指定 削除する方向を指定 欠損値を穴埋めする方法 基的な使い方 列ごとに埋める値を変える 前後の値を使って穴埋めをする 平均値や最頻値などで穴埋め 個別に穴埋めする値を指定する まとめ 参考 実際のデータで分析を行うとデータが不完全で欠損値が含まれていることがあります。 欠損値の扱い方が変わるだけで分析の結果が変化する場合もあります。 そこで記事では欠損値の処理をすることができるように 簡単な欠損値の確かめ方 欠損値を削除する方法 欠損値を穴埋めする方法 の3つについて解説していきます。 簡単な欠損値の確かめ方 とりあえず各列に欠損値があるかどうかを知りたい、というときはisnull関数とany関数の組み合わせとno

    Pandasでnan値を削除、穴埋めするfillna、dropnaの使い方
  • 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
  • うわっ…私の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初学者のためのPandas100本ノック - Qiita

    Information 2024/1/8: pandas , Polars など18を超えるライブラリを統一記法で扱える統合データ処理ライブラリ Ibis の100 ノックを作成しました。長期目線でとてもメリットのあるライブラリです。こちらも興味があればご覧下さい。 Ibis 100 ノック https://qiita.com/kunishou/items/e0244aa2194af8a1fee9 2023/2/12: 大規模データを高速に処理可能なデータ処理ライブラリ Polars の 100 ノックを作成しました。こちらも興味があればご覧下さい。 Polars 100 ノック https://qiita.com/kunishou/items/1386d14a136f585e504e はじめに この度、PythonライブラリであるPandasを効率的に学ぶためのコンテンツとして

    Python初学者のためのPandas100本ノック - Qiita
  • 「Pythonによる医療データ分析入門」は分析100本ノック後に必読な探索的データサイエンス本だった - Lean Baseball

    今年読んだデータサイエンスおよびPythonの中でも最良の一冊でした. ホントに待ち望んでいた一冊でした. 実は密かに楽しみにしてた(待ち望んでいた)*1, 「Pythonによる医療データ分析入門」, 一通り読ませていただきましたので, Pythonによる医療データ分析入門の感想 分析100ノック後にやると良いこと 探索的データサイエンスはデータサイエンスに関わる人すべてに関係する準備運動であり入り口であること 的な話を綴りたいと思います. なお, 最初に断っておくと, 新型コロナウイルス含む, 感染症とか流行病の話は一切触れておりません! このエントリーは純粋に「Pythonを使ったデータサイエンス」を志向した方向けのエントリーとなります. 新型コロナウイルスだの感染症関連だのを期待されている・そう思った方はぜひ他のページなどを見ていただけると幸いです. このエントリーのダイジェスト

    「Pythonによる医療データ分析入門」は分析100本ノック後に必読な探索的データサイエンス本だった - Lean Baseball
  • Python関係の「○○100本ノック」のまとめ - Qiita

    「○○100ノックとは」? プログラミング関係のエクササイズ集・Tips集的なものです。ちょっとしたテクニックや、基礎がまとまっているので解いてみると練習になります。 最初にやるのは退屈かもしれませんが、学習の停滞期にやってみると、思わぬ発見があるのではないかなと思います。 この記事では、Python関係の100ノックを簡単にまとめてみました。自分が知っているのは、以下くらいですが、他にも良いもの(絶対ある気がします)知っている人はぜひコメントなどで教えてください。 画像処理100ノック 画像処理100ノック!! 追記:家が惜しくも無くなってしまっていたので、fork(?)されていたものにリンク張り替えました。 解説・Google Colaboratoryで実行するときは以下記事参考にしてみてください。 ディープラーニング ∞ノック 注:元サイトが消えてしまったので、私がfor

    Python関係の「○○100本ノック」のまとめ - Qiita
  • Python: 広義の Target Encoding と Stacking は同じもの (と解釈できる) - CUBE SUGAR CONTAINER

    おそらく、既に分かっている人には「知らなかったの?」とびっくりされる系の話なんだろうけど、今さら理解したので備忘録として残しておく。 結論から書くと、目的変数を用いた特徴量生成を広義の Target Encoding と定義した場合、Target Encoding と Stacking は同じものと解釈できる。 例えば、Target Mean Encoding は多項分布を仮定したナイーブベイズ分類器を用いた Stacking とやっていることは同じになる。 また、Target Encoding と Stacking が同じものであると解釈することで、周辺の知識についても理解しやすくなる。 Target Encoding について Target Encoding は、データ分析コンペで用いられることがある特徴量生成 (Feature Extraction) の手法のこと。 一般的にはカテゴ

    Python: 広義の Target Encoding と Stacking は同じもの (と解釈できる) - CUBE SUGAR CONTAINER
  • MLflowによる機械学習モデルのライフサイクルの管理

    2020/6/11 画像センシングシンポジウム オーガナイズドセッション2 「限られたデータからの深層学習」 https://confit.atlas.jp/guide/event/ssii2020/static/organized#OS2 での招待講演資料です。 コンピュータビジョン分野を中心とした転移学習についての講演です。 パブリックなデータセットも増えていて、物体検出や領域分割などの研究も盛んですが、実際に社会実装しようとするときのデータは学習データと異なる性質(異なるドメイン)のデータである場合も非常に多いです。 講演では、そのような場合に有効なドメイン適応の原理となるアプローチ2つと応用としての物体検出と領域分割の事例を紹介しています。

    MLflowによる機械学習モデルのライフサイクルの管理
  • 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 - フリーランチ食べたい
  • PythonでDataFrameを省メモリに縦横変換する - MicroAd Developers Blog

    マイクロアドの京都研究所で機械学習エンジニアをしている田中です。 機械学習を利用したユーザーの行動予測の研究開発などを担当しています。 今回は、データの前処理に関するお話をしたいと思います。 データの縦横変換 縦横変換するためのpandasの関数 省メモリに縦横変換する サンプルデータの準備 pandas.Categoricalの活用 scipy.sparseの疎行列クラスの活用 さいごに 参考 データの縦横変換 機械学習や統計解析をする際に頻出するデータの前処理の1つに、データの縦横変換があります。 縦横変換とは、縦持ち(またはlong型)のデータと、横持ち(またはwide型)のデータを互いに変換することを指します。 縦持ちのデータの例 横持ちのデータの例 例示したこの2つのテーブルは、表現形式こそ異なりますが、表しているデータ自体はどちらも同じものになります。 ユーザーの行動予測をする

    PythonでDataFrameを省メモリに縦横変換する - MicroAd Developers Blog
  • Pythonでスポーツ動作分析(野球・ピッチング編) - Qiita

    はじめに Pythonを使って、スポーツの動作を可視化していきたたいと思います。 前回はOpenPoseを使ったバッティングフォーム解析をやりました。 今回は、ピッチングの動作解析です。前回と同じOpenPoseに加えて、OpenCV、Pandasを使って動作を可視化してきたいと思います。 動作分析内容 骨格検出 軌道(手首)の可視化 角度変化(肩・肘・腰)の可視化 環境 撮影カメラ 自分のスマホ(HTC U11) 解析環境 windows10 home(64bit/CPUGoogle Colaboratory(python3/CPU) ライブラリ(DeNA/Chainer_Realtime_Multi-Person_Pose_Estimation) 骨格検出 ピッチングの動画から「DeNA/Chainer_Realtime_Multi-Person_Pose_Estimation」を

    Pythonでスポーツ動作分析(野球・ピッチング編) - Qiita
  • Python: pandas-profiling でデータセットの概要を確認する - CUBE SUGAR CONTAINER

    今回は pandas-profiling というパッケージを使ってみる。 このパッケージを使うと pandas の DataFrame に含まれる各次元の基的な統計量や相関係数などを一度に確認できる。 最初にデータセットのサマリーを確認できると、その後の EDA (Exploratory Data Analysis: 探索的データ分析) の取っ掛かりにしやすいと思う。 使った環境は次の通り。 $ sw_vers ProductName: macOS ProductVersion: 12.4 BuildVersion: 21F79 $ python -V Python 3.9.13 $ pip3 list | grep pandas-profiling pandas-profiling 3.2.0 下準備 まずは必要なパッケージをインストールしておく。 $ pip install pand

    Python: pandas-profiling でデータセットの概要を確認する - CUBE SUGAR CONTAINER
  • 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 で対応関係を渡して値を変換する - CUBE SUGAR CONTAINER

    例えばデータセットの中のカラムが文字列型なんかで入っていると、それを数値に直したくなることはよくあると思う。 今回はそれを pandas でやる方法について書く。 結論から先に書くと Series オブジェクトにある map() メソッドを使うと上手くいく。 使った環境は次の通り。 $ python -V Python 3.6.4 $ pip list --format=columns | grep -i pandas pandas 0.22.0 まずは pandas をインストールして Python の REPL を起動しておく。 $ pip install pandas $ python サンプルになる DataFrame オブジェクトを用意する。 各行には何かの商品のグレードと価格に関する情報が入っているイメージ。 >>> import pandas as pd >>> data =

    Python: pandas で対応関係を渡して値を変換する - CUBE SUGAR CONTAINER
  • Pythonで書かれたOSSのコードを最適化してPull Requestがマージされるまで - Sansan株式会社 | 公式メディア「mimi」

    はじめまして。2018年1月に入社した奥田(@yag_ays)です。 先日、scikit-learn-contribの1つであるCategory Encodersの最適化を実装したPull Requestがマージされたので、そこに至るまでのプロファイルや最適化の過程を紹介したいと思います。 普段、私の仕事機械学習データ分析がメインで、あまりPythonの処理レベルで早いコードを書いたりすることはありません。もちろん最適化なんてことについては、あまり経験を持っていない素人なのですが、この記事が皆さんのプロジェクトを最適化する際の参考になれば幸いです。 tl;dr scikit-learn-contribの中のcategory_encodersの実行速度を最適化した Pythonのプロファイリングにはline_profiler、デバッグにはpdbが便利 Pandasのカラムをfor文で書き

    Pythonで書かれたOSSのコードを最適化してPull Requestがマージされるまで - Sansan株式会社 | 公式メディア「mimi」
  • ちょっとしたツールを作るのに便利なPythonライブラリ - Qiita

    この記事は、LIFULL Advent Calendar 2017の2日目の記事です。 おはようございます。新UX開発部の二宮( @ninomiyt )です。 LIFULLではデータ解析や最適化の用途、もしくはAWS Lambda上の簡易ツール実装用途などでPythonがそれなりに普及してきました。数値計算寄りの(いわゆるデータサイエンティスト的な)メンバーも今はPythonを使うことが多く、コード量としては小規模なプロジェクトが多く、簡単なAPIやバッチ処理の実装までやってもらうこともあります。 そのレビューをやっていく中で、「これ使うともっと簡単に実装できるよね」っていうライブラリがいくつかまとまってきたので紹介します。 click コマンドラインパーサー用のライブラリで、デコレータを使って関数を簡単にCLI化できます。 標準ライブラリのargparseがありますが、clickではバリ

    ちょっとしたツールを作るのに便利なPythonライブラリ - Qiita
  • [Python] 株価データをプロットし,さらにCSVファイルを出力する - Qiita

    はじめに Web上で長期間の株価データを探してもなかなか見つからないので,Pythonを用いて株価のヒストリカルデータを取得し,CSV形式で出力,さらに出力したデータをプロットするプログラムを作成しました. 日株・外国株いずれにも対応しています. 参考までに,例として出力した日経平均株価1のCSVファイルはこちら,さらにプロットすると以下のようになります. ソースコードの紹介 まず,作成したソースコードを紹介します. #!/usr/bin/env python3 # -*- coding:utf-8 -*- ''' 株価データのプロット・CSVへの出力 ''' import datetime as dt from pandas import DataFrame import jsm import pandas_datareader.data as web import matplotli

    [Python] 株価データをプロットし,さらにCSVファイルを出力する - Qiita
  • Python: pandas でカラムの型を変換する - CUBE SUGAR CONTAINER

    pandas はデータを読み込むとき、よきに計らってカラムに型を付与してくれる。 ただ、その内容が意図しない場合もある。 そんなとき、どうやってカラムの型を直すか、ということについて。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.6 BuildVersion: 16G29 $ python --version Python 3.6.3 もくじ もくじ 下準備 サンプルデータ カラムの型を変換する 型を変換したカラムを非破壊的に追加する 型を変換したカラムを破壊的に追加する もっと柔軟に変換する 値として NaN が入っている場合 下準備 まずは下準備として pandas をインストールしておく。 $ pip install pandas $ pip list --format=columns | gre

    Python: pandas でカラムの型を変換する - CUBE SUGAR CONTAINER