>백엔드 개발 >파이썬 튜토리얼 >문자열만 있는 Pandas DataFrame 열에 개체 Dtype이 있는 이유는 무엇입니까?

문자열만 있는 Pandas DataFrame 열에 개체 Dtype이 있는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-25 22:50:02803검색

Why Does My Pandas DataFrame Column With Only Strings Have an Object Dtype?

Pandas DataFrames의 객체 Dtype 이해

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

보시다시피 , 모든 요소가 문자열임에도 불구하고 obj_col은 ndarray의 포인터 사용으로 인해 dtype 객체를 갖습니다.

결론

Pandas DataFrames의 dtype 객체는 기본 ndarray 구현에서 발생합니다. 문자열을 포함하지만 문자열이 별도의 데이터 유형으로 명시적으로 표현되지 않는다는 점에 유의하는 것이 중요합니다. 대신, 객체 ndarray 내의 객체에 대한 포인터로 저장됩니다.

위 내용은 문자열만 있는 Pandas DataFrame 열에 개체 Dtype이 있는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.