데이터 프레임으로 작업할 때 개별 내용을 조정해야 하는 경우가 많습니다. 세포. 이 경우 작업은 특정 목록 'abc'를 데이터 프레임의 셀 1B에 삽입하는 것입니다. 다양한 시도가 있었지만 각각 고유한 문제에 직면했습니다.
처음에는 df.ix[1,'B'] = abc를 사용하여 전체 목록을 셀에 직접 할당하려고 시도하면 ValueError가 발생했습니다. 키와 값의 수가 일치하지 않기 때문입니다. 대신 df.ix[1,'B'] = [abc]를 사용하면 'abc' 목록이 유일한 요소인 목록이 생성되는데 이는 바람직하지 않습니다.
df를 사용하여 목록을 문자열로 변환합니다. ix[1,'B'] = ', '.join(abc)는 의도한 콘텐츠를 목록이 아닌 문자열로 생성합니다. 마찬가지로 df.ix[1,'B'] = [', '.join(abc)]를 사용하면 단일 문자열 요소가 포함된 목록이 생성됩니다.
이후에는 더 복잡한 요소가 포함된 데이터 프레임에 목록을 삽입하려고 시도합니다. 정수와 문자열을 모두 포함하는 열 유형에 오류가 발생합니다. 이는 문제가 열의 혼합 데이터 유형에 있음을 나타냅니다.
이 문제를 해결하려면 loc 대신 at 속성을 사용하는 것이 좋습니다. 이 방법은 일관되게 단일 값을 참조하여 loc에서 발생하는 문제를 방지합니다. 또한 삽입되는 열에 dtype=object가 있는지 확인하면 추가 오류를 방지할 수 있습니다.
예를 들어 다음 코드는 df2 데이터 프레임의 셀 1B에 'abc' 목록을 성공적으로 삽입합니다.
import pandas as pd abc = ['foo', 'bar'] df2 = pd.DataFrame(data={'A': [12, 23], 'B': [None, None], 'C': ['bla', 'bla bla']}) df2['B'] = df2['B'].astype('object') # Ensure 'B' has dtype=object df2.at[1, 'B'] = abc print(df2)
출력:
A B C 0 12 NaN bla 1 23 [foo, bar] bla bla
위 내용은 Pandas DataFrame의 특정 셀에 목록을 효과적으로 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!