Pythonの効率的なデータフレーム処理ツール、Sidetableを推薦します。
Pandasはデータサイエンス界で人気のあるPythonパッケージで、データ解析のための多くの関数やメソッドが含まれていることはご存知のとおりです。その機能はデータ分析に十分有効ですが、カスタムライブラリを利用することでPandasにさらなる付加価値を与えることができます。
SidetableはオープンソースのPythonライブラリで、value_countsとcrosstab関数の組み合わせとして、データ分析・探索に利用できるツールである。今回は、その特徴をさらに掘り下げて解説していきます。学習のためにブックマークしたり、サポートのために「いいね!」を押したり、お気軽にご利用ください。
インストール方法
SidetableはPyPIからインストールすることができます。
pip install sidetable
使用方法
KaggleからダウンロードしたTitanicデータセットを使って、ライブラリを実装します。
sidetableのアイデアは、データ分析に必要なコードの行数を減らし、ワークフローを高速化することです。どんなデータセットでも、特徴分布の可視化、頻度カウント、欠損レコードカウントなど、実行しなければならないデータ分析タスクが多数あります。
Sidetableライブラリの機能について、Titanicデータセットを用いてより詳しく説明します。
1. freq()
Pandasは特徴量の頻度カウントを計算するvalue_counts()関数を提供しています。pandasは分布カウントや確率分布を計算することができますが、より簡単にこれらの値を組み合わせたいと思うかもしれません。
分布回数と確率分布は組み合わせて使うことができますが、多くの入力とコードのメモリが必要です。
sidetableについては、freq()関数を使ってPythonのコード1行で実装する方がシンプルです。あなたは、累積的な合計、パーセンテージ、およびより多くの柔軟性を得ることができます。
このほか、複数の列をグループ化し、グループ化された要素の分布を可視化することも可能です。
また、グループ化されたデータの "sum"が特定の列に基づいていることを示すために、パラメータ値を使って要素の列を指定することができます。
2. 数値
sidetable の counts() 関数は、さらなる分析やモデリングのためにカテゴリや値として考慮する必要がある特徴を識別するために使用できる要約表を生成します。counts() 関数は、特徴に対するユニークな値の数および最頻値と最少値を表示します。
exclude と include パラメータを使用すると、データセットから特定のデータ型を除外したり、含めたりすることができます。
3. 行方不明()
sidetableのmissing()関数は、各列の欠落値の総数および割合で欠落レコードを表示するサマリーテーブルを生成します。
4. 小計()
Sidetableのsubtotal()関数は、Pandasのgroup by関数と一緒に使うのが最適です。これは、1つまたは複数のレベルのデータフレームのグループ化に対する小計を計算するために使用することができます。
小計()関数は、グループ化されたデータの1つ以上のレベルに追加することができます。まず、groupby() 関数でデータボックスをグループ化し、各レベルで小計を追加する必要があります。
まとめ
Sidetableは、Pandasのvalue_countsとcrosstabを組み合わせて、解釈しやすく、分析結果も提供できるサマリーテーブルを生成する、効率的で便利なツールです。構文がシンプルなため、データ解析や探索のためのより良いライブラリとなっています。
以上、pythonの効率的なデータフレーム処理ツール「Sidetable」の詳細を紹介しました。
Pythonデータフレーム処理ツールSidetableについては、スクリプトハウスの他の関連記事もご参照ください。
関連
-
[解決済み】LockとRLockの違いは何ですか?
-
Flaskのエラー「TypeError.Flask」を解決する。ユニコードオブジェクトはハッシュ化する前にエンコードする必要があります"
-
PythonにおけるReflectionの概要
-
pycharmでtensorflowを使う方法を教えます。
-
[解決済み] CUDAをpytorchで使う?
-
[解決済み] numpy 配列連結エラー。0-d配列は連結できません。
-
[解決済み] ImportError: NUMPY_MKLという名前をインポートできません。
-
[解決済み] numpy配列の要素をシフトする
-
長年にわたるPythonで陥った落とし穴~不要な文字の消去について
-
scipy.stats.multivariate_normalガウス分布
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot'. 3> django
-
[解決済み] pyファイルのコンパイル時にutilsという名前のモジュールがないエラーが発生する
-
[解決済み] Pythonのmatplotlibで日付をX軸にプロットする
-
[解決済み] ValueError: データがバイナリでなく、pos_label が指定されていない。
-
[解決済み] Pythonでバックスラッシュ文字を空文字列に置換する方法
-
[解決済み] "from keras.utils import to_categorical "でエラー。
-
[解決済み] パイソン 複数の関数を同時に実行する
-
[解決済み] crontabスタイルの行のパース
-
[解決済み] Pythonでタプルを平坦化する方法
-
TypeError: 'numpy.float64' オブジェクトはアイテムの割り当てをサポートしていません。