"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python에서 DataFrame 셀에 목록을 성공적으로 삽입하는 방법은 무엇입니까?

Python에서 DataFrame 셀에 목록을 성공적으로 삽입하는 방법은 무엇입니까?

2024-11-07에 게시됨
검색:329

How to Successfully Insert a List into a DataFrame Cell in Python?

DataFrame의 셀에 목록 삽입

Python pandas에서 희소 데이터를 처리할 때 특정 셀에 목록을 삽입하는 것이 어려울 수 있습니다. df.ix[1,'B'] = abc와 같은 일반적인 방법을 사용하여 이러한 작업을 시도하면 키 길이가 일치하지 않아 오류가 발생하는 경우가 많습니다.

대체 솔루션 및 제한 사항

목록을 추가 대괄호(예: df.ix[1,'B'] = [abc])로 묶거나 문자열 표현(예: df.ix[1,'B'] = ', '.join)을 사용하면 오류가 발생합니다. (abc))는 추가 요소를 도입하거나 의도한 데이터 구조를 변경하므로 만족스럽지 않습니다.

목록 삽입에 df.at 사용

보다 효과적인 접근 방식은 대신 df.at를 사용하는 것입니다. df.ix 또는 df.loc. df.at는 특히 단일 셀을 대상으로 하여 앞서 언급한 오류로 이어질 수 있는 모호성을 제거합니다.

import pandas as pd

# Create a dataframe with mixed data types
df = pd.DataFrame(data={'A': [1, 2, 3], 'B': ['x', 'y', 'z']})

# Insert a list into cell 1B
df.at[1, 'B'] = ['m', 'n']

print(df)

이 작업은 ['m', 'n']을 오류 없이 셀 1B에 성공적으로 삽입합니다.

열 Dtype 호환성 보장

참고하는 것이 중요합니다. 목록을 삽입하려는 열의 dtype이 'object'로 설정되어 있어야 합니다. 열에 'int64'와 같이 다른 dtype이 있으면 오류가 발생합니다. 이 문제를 해결하려면 삽입을 시도하기 전에 열의 dtype을 변환하면 됩니다.

df = pd.DataFrame(data={'A': [1, 2, 3], 'B': [1,2,3]})
df['B'] = df['B'].astype('object')

# Now, list insertion will work as expected
df.at[1, 'B'] = [1, 2, 3]
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3