Pandas DataFrame の文字列が変換後もオブジェクトとして表示されるのはなぜですか?

Patricia Arquette
リリース: 2024-10-25 21:25:29
オリジナル
997 人が閲覧しました

 Why do Strings in Pandas DataFrames Appear as Objects Even After Conversion?

DataFrame 内の文字列がオブジェクトとして保存されるのはなぜですか?

文字列を含む DataFrame 列を文字列データ型に明示的に変換しているにもかかわらず、Python の Pandas ライブラリでは依然としてオブジェクトとして報告される可能性があります。この不一致は、NumPy の基礎となるデータ構造が原因で発生します。

NumPy は ndarray を使用してデータの配列を保存し、ndarray 内の各要素は固定バイト数を持ちます。整数 (int64) と浮動小数点数 (float64) の場合、各要素は 8 バイトを占有します。ただし、文字列は可変長であるため、文字列を ndarray に直接格納するのは現実的ではありません。

これに対応するために、Pandas はオブジェクト ndarray を使用してオブジェクトへのポインタを格納します。これらのオブジェクトには実際の文字列値が含まれています。その結果、オブジェクト ndarray のサイズは不定になり、「object」データ型として表されます。

例:

4 つの 64 ビットを含む int64 配列を考えてみましょう。整数と、3 つの文字列オブジェクトへの 4 つのポインターを含むオブジェクト配列:

int64 array: | 1 | 2 | 3 | 4 |
object array: | pointer to "hello" | pointer to "world" | pointer to "!" |

Visualization:

+---------+-----------+
| int64    |  object   |
|---------+-----------|
| 1        | hello     |
| 2        | world     |
| 3        | !         |
| 4        | null      |
+---------+-----------+
ログイン後にコピー

この表現では、int64 配列は固定量のスペースを占有し、各要素は 8 バイトです。一方、オブジェクト配列にはさまざまなサイズのオブジェクトへのポインターが格納されるため、「オブジェクト」データ型となります。

以上がPandas DataFrame の文字列が変換後もオブジェクトとして表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!