Pandasは、Pythonで最も価値のあるデータ分析および操作パッケージの1つです。
Python上に構築されたカスタムデータ構造などの機能を提供します。
この記事では、PandasDataFrame内で列を1つのデータ型からint型に変換する方法について説明します。
パンダのセットアップ
変換操作を実行する方法に飛び込む前に、Python環境でPandasをセットアップする必要があります。
Anacondaインタープリターで基本環境を使用している場合は、Pandaがインストールされている可能性があります。
ただし、Pythonのネイティブインストールでは、手動でインストールする必要があります。
これを行うには、次のコマンドを実行します。
Linuxでは、
$ sudo pip3 インストール パンダ
AnacondaまたはMiniconda環境では、コンダを使用してパンダをインストールします。
$ conda インストール パンダ
$ sudo コンダ インストール パンダ
パンダはサンプルデータフレームを作成します
このチュートリアルでは、説明のためにサンプルのDataFrameを設定しましょう。 以下のコードをコピーするか、DataFrameを使用できます。
輸入 パンダ なので pd
df = pd。DataFrame(({{‘id’: [‘1’, ‘2’, ‘3’, ‘4’, ‘5’]、
‘名前’: [‘Marja Jérôme’, ‘Alexios Shiva’, ‘Mohan Famke’, ‘Lovrenco Ilar’, ‘Steffen Angus’]、
「ポイント」: [‘50000’, ‘70899’, ‘70000’, ‘81000’, ‘110000’]})。
DataFrameが作成されると、データを確認できます。
パンダは列タイプを表示します
列を1つの型からintに変換する前に、既存の型をintにキャストできるかどうかを知っておくとよいでしょう。
たとえば、名前を含む列を変換しようとしても、intに変換することはできません。
dtypesプロパティを使用してDataFrameのタイプを表示できます
構文を使用します:
サンプルのDataFrameでは、列タイプを次のように取得できます。
df。dtypes
id 物体
名前 物体
ポイント 物体
dtype: 物体
上記の出力から、どの列もint型を保持していないことがわかります。
パンダは列を文字列から整数に変換します。
単一の列をintに変換するには、astype()関数を使用して、ターゲットデータ型をパラメーターとして渡します。
関数の構文:
DataFrame。astype((dtype、 コピー=真実、 エラー=‘高める’)。
- dtype –オブジェクトが変換されるPythonタイプまたはNumPydtypeを指定します。
- copy –所定の位置で動作する代わりに、オブジェクトのコピーを返すことができます。
- エラー–エラーが発生した場合のアクションを指定します。 デフォルトでは、この関数はエラーを発生させます。
サンプルのDataFrameでは、次のコードに示すように、astype()関数を使用してid列をint型に変換できます。
df[‘id’] = df[‘id’]。astype((int)。
上記のコードは、ターゲットオブジェクトとして「id」列を指定しています。 次に、intを型としてastype()関数に渡します。
DataFrameの各列の新しいデータ型を確認できます。
df。dtypes
id int32
名前 物体
ポイント 物体
dtype: 物体
id列はintに変換されていますが、残りは変更されていません。
パンダは複数の列をIntに変換します
astype()関数を使用すると、複数の列を変換して特定の型に変換できます。
たとえば、次のコードを実行して、id列とpoints列をint型に変換できます。
df[[‘id’, ‘points’]] = df[[‘id’, ‘points’]]。astype((int)。
ここでは、角括弧表記を使用して複数の列を指定しています。 これにより、列をastype()関数で指定されたデータ型に変換できます。
列タイプを確認すると、次の出力が表示されます。
df。dtypes
id int32
名前 物体
ポイントint32
dtype: 物体
これで、idとpointsの列がint32型に変換されたことがわかります。
パンダは複数の列を複数のタイプに変換します
astype()関数を使用すると、列とターゲットタイプをディクショナリとして指定できます。
id列をint32に変換し、points列をfloat64に変換するとします。
次のコードを実行できます。
に変換 = {{「id」: int、 「ポイント」: 浮く}
df = df。astype((に変換)。
上記のコードでは、ターゲット列をキーとして、ターゲットタイプを値として保持するディクショナリを定義することから始めます。
次に、astype()関数を使用して、ディクショナリの列を設定されたタイプに変換します。
列タイプを確認すると、次のようになります。
df。dtypes
id int32
名前 物体
ポイントfloat64
dtype: 物体
id列はint32であり、points列はfloat32タイプであることに注意してください。
パンダは列をIntに変換します– to_numeric()
Pandasはto_numeric()関数も提供します。 この関数を使用すると、列を数値型に変換できます。
関数の構文は次のとおりです。
パンダ。to_numeric((arg、 エラー=‘高める’、 ダウンキャスト=なし)。
たとえば、サンプルDataFrameでid列を数値に変換するには、次のコマンドを実行します。
df[‘id’] = pd。to_numeric((df[‘id’])。
コードはid列を取得し、それをint型に変換する必要があります。
パンダはDataFrameを可能な限り最高のデータ型に変換します
Pandasのconvert_dtypes()関数を使用すると、DataFrame全体を可能な限り最も近いタイプに変換できます。
関数の構文は次のとおりです。
DataFrame。convert_dtypes((infer_objects=真実、 convert_string=真実、 convert_integer=真実、 convert_boolean=真実、 convert_floating=真実)。
以下のリソースでドキュメントを確認できます。
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.convert_dtypes.html
たとえば、サンプルのDataFrameを可能な限り最も近いタイプに変換するには、次のコマンドを実行します。
タイプを確認すると:
df。dtypes
id Int32
名前 ストリング
ポイントInt64
dtype: 物体
各列が最も近い適切なタイプに変換されていることがわかります。 たとえば、この関数は小さなintをint32タイプに変換します。
同様に、names列は文字列値を保持するため、文字列型に変換されます。
最後に、points列はより大きな整数を保持するため、int64型に変換されます。
結論
この記事では、PandasDataFrameをあるタイプから別のタイプに変換する詳細な方法と例を示しました。
The post パンダは列をIntに変換します appeared first on Gamingsym Japan.