問題:
データフレーム内の指定された列を明示的に変換しようとしたにもかかわらず、 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 サイトの他の関連記事を参照してください。