ホームページ バックエンド開発 Python チュートリアル Pandas のヒント: 基本的な DataFrame 操作と Null 値の入力

Pandas のヒント: 基本的な DataFrame 操作と Null 値の入力

Sep 16, 2020 pm 04:20 PM
dataframe pandas python

Pandas のヒント: 基本的な DataFrame 操作と Null 値の入力

関連する学習の推奨事項: Python チュートリアル

##今日は

pandas データ処理このトピックの 4 番目の記事では、DataFrame のインデックスについて説明します。

前の記事では、iloc、loc、論理インデックスなど、DataFrame データ構造でよく使用されるインデックスの使用方法を紹介しました。今日の記事では、DataFrame の

基本操作 をいくつか見てみましょう。

データ アライメント

2 つの DataFrame の合計を計算できます。

pandas は自動的に 2 つの DataFrame を実行します。データ配置. データが一致しない場合は、Nan (非数値) に設定されます。

最初に 2 つの DataFrame を作成します:

import numpy as npimport pandas as pddf1 = pd.DataFrame(np.arange(9).reshape((3, 3)), columns=list('abc'), index=['1', '2', '3'])df2 = pd.DataFrame(np.arange(12).reshape((4, 3)), columns=list('abd'), index=['2', '3', '4', '5'])复制代码
ログイン後にコピー
結果は私たちが想像したものと一致しています。実際には、numpy 配列を使用して

DataFrame を作成するだけです。インデックスと列を指定します。これは非常に基本的な使用法であると考えてください。

次に、2 つの DataFrame を追加すると、次の結果が得られます:

pandas が 2 つの DataFrame を追加したことがわかります。マージすると、

両方の DataFrame に表示されない位置は Nan に設定されます。実はこれには意味があり、足し算だけではなく、2つのDataFrameの加減乗除の四則演算も計算できます。 2 つの DataFrame の割り算を計算すると、それに該当しないデータが Nan に設定されるだけでなく、ゼロで割るという行為も外れ値の発生につながります (必ずしもそうではない場合があります) Nan ですが、inf です)。

fill_value

2 つの DataFrame を操作する場合、もちろん null は必要ありません表示される値。このとき、null 値を埋める必要があります。演算子を直接使用して演算を実行すると、埋めるためのパラメータを渡すことができません。このとき、で提供されている

算術メソッドを使用する必要があります。データフレーム。

DataFrame には一般的に使用される演算子がいくつかあります:

add、sub、p については誰もがよく理解していますが、ここでの radd メソッドと rsub メソッドは何を意味するのでしょうか?なぜ前に r があるのでしょうか?

ややこしいようですが、率直に言うと、radd は パラメータを反転するために使用されます。たとえば、DataFrame 内のすべての要素の逆数を取得したい場合は、1/df と記述できます。 1 自体は DataFrame ではないため、1 を使用して DataFrame 内のメソッドを呼び出すことはできず、パラメーターを渡すこともできません。この状況を解決するには、1/df を df.rp(1)## として記述します。 # なので、パラメータを渡すことができます。

除算の計算中にゼロによる除算が発生するため、無限大を表す inf が得られます。

add メソッドと p メソッドで fill_value パラメータを渡すことができます。このパラメータは

計算前に片側の欠損値の場合に埋め込むことができます。つまり、1 つの DataFrame でのみ欠落している位置は、指定した値で置き換えられます。両方の DataFrame で欠落している場合でも、Nan になります。

結果を比較すると、加算後の (1, d)、(4, c)、および (5, c) の位置はすべて Nan であることがわかります。 2 つのデータフレーム df1 および df2 内のこれらの位置は空の値であるため、埋められません。

#fill_value このパラメータは、インデックスの再作成など、多くの API で使用されます。使用方法は同じなので、API ドキュメントを確認するときに注意してください。

それでは、入力後も表示されるこの種の空の値をどうすればよいでしょうか?これらの場所を手動で見つけて入力することしかできませんか?もちろん、それは非現実的ですが、Pandas は、特に null 値を解決する API も提供します。

#null 値を入力する前に、最初に行う必要があるのは

null 値を検索します

。この問題を解決するには、bool DataFrame を返す isna API を使用します。DataFrame 内の各位置は、元の DataFrame の対応する位置が null 値であるかどうかを示します。

dropna

もちろん、null 値かどうかを確認するだけです。明らかに十分ではありません。null 値が表示されないことを期待する場合もありますが、この時点では、null 値を削除する を選択できます。この状況では、DataFrame の Dropna メソッドを使用できます。

dropna を使用すると、null 値を含む行が破棄されることがわかりました。 null 値を持たない行のみが保持されますが、行ではなく列を破棄したい場合がありますが、このときは axis パラメータを渡すことで制御できます。

このようにして、null 値を含まない列が得られます。行と列の制御に加えて、 厳密性も制御できます。ドロップ を実行中。 How パラメータで判断できますが、How は 2 つの値 (1 つは 'all'、もう 1 つは 'any') を渡すことをサポートしています。 All は、特定の行または列がすべて null 値の場合にのみ破棄されることを意味し、any に対応すると、null 値が出現する限り破棄されます。デフォルトで入力されていない場合は、any とみなされますが、通常はこのパラメータを使用せず、印象があれば十分です。

fillna

null 値を含むデータを削除するだけでなく、パンダも使用できます Fill empty値、実際、これは最も一般的に使用される方法でもあります。

塗りつぶし用に特定の値を渡すだけです。

fillna は新しい DataFrame を返します。すべて Nan の値です。指定した値に置き換えられます。新しい DataFrame を返さずに元のデータを直接変更する場合は、inplace パラメーターを使用してこれがインプレース操作であることを示すことができ、パンダは元の DataFrame を変更します。

df3.fillna(3, inplace=True)复制代码
ログイン後にコピー

除了填充具体的值以外,我们也可以和一些计算结合起来算出来应该填充的值。比如说我们可以计算出某一列的均值、最大值、最小值等各种计算来填充。fillna这个函数不仅可以使用在DataFrame上,也可以使用在Series上,所以我们可以针对DataFrame中的某一列或者是某些列进行填充:

除了可以计算出均值、最大最小值等各种值来进行填充之外,还可以指定使用缺失值的前一行或者是后一行的值来填充。实现这个功能需要用到method这个参数,它有两个接收值,ffill表示用前一行的值来进行填充,bfill表示使用后一行的值填充。

我们可以看到,当我们使用ffill填充的时候,对于第一行的数据来说由于它没有前一行了,所以它的Nan会被保留。同样当我们使用bfill的时候,最后一行也无法填充。

总结

今天的文章当中我们主要介绍了DataFrame的一些基本运算,比如最基础的四则运算。在进行四则运算的时候由于DataFrame之间可能存在行列索引不能对齐的情况,这样计算得到的结果会出现空值,所以我们需要对空值进行处理。我们可以在进行计算的时候通过传入fill_value进行填充,也可以在计算之后对结果进行fillna填充。

在实际的运用当中,我们一般很少会直接对两个DataFrame进行加减运算,但是DataFrame中出现空置是家常便饭的事情。因此对于空值的填充和处理非常重要,可以说是学习中的重点,大家千万注意。

想了解更多编程学习,敬请关注php培训栏目!

以上がPandas のヒント: 基本的な DataFrame 操作と Null 値の入力の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPythonの選択:ガイド PHPとPythonの選択:ガイド Apr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Windows 8でコードを実行できます Windows 8でコードを実行できます Apr 15, 2025 pm 07:24 PM

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

Visual StudioコードはPythonで使用できますか Visual StudioコードはPythonで使用できますか Apr 15, 2025 pm 08:18 PM

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

PHPとPython:彼らの歴史を深く掘り下げます PHPとPython:彼らの歴史を深く掘り下げます Apr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

ターミナルVSCODEでプログラムを実行する方法 ターミナルVSCODEでプログラムを実行する方法 Apr 15, 2025 pm 06:42 PM

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

VSCODE拡張機能は悪意がありますか? VSCODE拡張機能は悪意がありますか? Apr 15, 2025 pm 07:57 PM

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。

See all articles