Pandas では、dtype オブジェクトはオブジェクトを含む列を表します。ただし、列内のすべての要素が文字列であるように見える場合、これは混乱を招く可能性があります。
オブジェクトの dtype は、NumPy の ndarray 実装に由来します。 NumPy では、配列にはバイト単位で均一なサイズの要素が含まれている必要があります。文字列は可変長であるため、Pandas は文字列をオブジェクトへのポインターとしてオブジェクト ndarray に格納します。これにより、オブジェクト dtype が生成されます。
次の例を考えてみましょう:
import numpy as np import pandas as pd # Create an int64 ndarray int_arr = np.array([1, 2, 3, 4], dtype=np.int64) # Create an object ndarray containing pointers to string objects obj_arr = np.array(['a', 'b', 'c', 'd'], dtype=object) # Convert obj_arr to a Pandas DataFrame df = pd.DataFrame({'int_col': int_arr, 'obj_col': obj_arr}) # Check data types print(df.dtypes)
出力:
int_col int64 obj_col object
ご覧のとおりすべての要素が文字列であるにもかかわらず、ndarray でポインターが使用されているため、obj_col にはオブジェクト dtype があります。
Pandas DataFrames のオブジェクト dtype は、基礎となる ndarray 実装から生じます。文字列も含まれますが、文字列は別個のデータ型として明示的に表現されないことに注意することが重要です。代わりに、オブジェクト ndarray 内のオブジェクトへのポインターとして保存されます。
以上が文字列のみを含む Pandas DataFrame 列にオブジェクト Dtype があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。