ホームページ  >  記事  >  バックエンド開発  >  文字列変換後に DataFrame 列に「Object」データ型が表示されるのはなぜですか?

文字列変換後に DataFrame 列に「Object」データ型が表示されるのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-28 15:25:02809ブラウズ

Why is My DataFrame Column Showing

明示的な文字列変換にもかかわらず、DataFrame 列に「オブジェクト」データ型が表示される

問題:
データフレーム内の指定された列を明示的に変換しようとしたにもかかわらず、 DataFrame を文字列に変換すると、dtype 'object' として保持されます。個々の列の値を検査すると、それらが実際に文字列であることが確認されます。

Int64Index: 56992 entries, 0 to 56991
Data columns (total 7 columns):
id            56992 non-null values
attr1         56992 non-null values
attr2         56992 non-null values
attr3         56992 non-null values
attr4         56992 non-null values
attr5         56992 non-null values
attr6         56992 non-null values
dtypes: int64(2), object(5)

Column 'attr2' remains as dtype 'object' despite conversion:

convert attr2 to string

説明:

Pandas は、可変長データ型を含む列を記述するために dtype 'object' を使用します。 、文字列など。これは、「int64」や「float64」などの固定長データ型とは異なります。内部的には、Pandas は 'object' ndarray 内の文字列オブジェクトへのポインターを使用して文字列データを保存します。

int64 array:
[1, 2, 3, 4]

object array:
[pointer to string 'John', pointer to string 'Mary', pointer to string 'Bob', pointer to string 'Alice']

「dtype オブジェクト」は、その中のオブジェクトが文字列ではないことを意味しません。各文字列オブジェクトは引き続きメモリ内に存在し、「オブジェクト」ndarray 内のポインタを介してアクセスできます。

Pandas が列を文字列として認識できるようにするには、それらの列内のすべての要素が一貫した文字列であることを確認します。さらに、.apply(str) や .astype('string') などのメソッドを使用して要素を文字列に変換できます。

以上が文字列変換後に DataFrame 列に「Object」データ型が表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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