ホームページ >バックエンド開発 >Python チュートリアル >私の Pandas データフレームに「object」 dtype の文字列列があるのはなぜですか?
データ分析に使用される人気の Python ライブラリである Pandas では、次のような状況に遭遇する可能性があります。 DataFrame には一見文字列値を持つ列が含まれていますが、dtype 属性はそれらを「オブジェクト」として示しています。この異常は、オブジェクトを文字列に明示的に変換した後に発生する可能性があります。
オブジェクト データ型の理由:
混乱は、データを格納する NumPy 配列の基礎となる実装に起因します。データフレーム。 NumPy 配列には、バイト単位で同じサイズの要素が必要です。整数 (int64) や浮動小数点数 (float64) などのプリミティブ型の場合、サイズは固定です (8 バイト)。ただし、文字列には可変長があります。
この可変性に対応するために、Pandas は文字列バイトを配列に直接格納しません。代わりに、文字列オブジェクトへのポインタを含む「オブジェクト」配列を作成します。これにより、dtype は「object」になります。
例:
次の DataFrame について考えます。
<code class="python">df = pd.DataFrame({ "id": [0, 1, 2], "attr1": ["foo", "bar", "baz"], "attr2": ["100", "200", "300"], })</code>
次の dtype を確認すると、列を見ると、attr2 が dtype "object" であることがわかります:
<code class="python">print(df.dtypes) # Output: # id int64 # attr1 object # attr2 object</code>
文字列への変換:
attr2 を明示的に文字列に変換すると、Pandas は次のことを行います。基礎となるストレージ メカニズムは変更しません:
<code class="python">df["attr2"] = df["attr2"].astype(str)</code>
したがって、attr2 は dtype "object" を保持します。
追加情報:
以上が私の Pandas データフレームに「object」 dtype の文字列列があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。