>  기사  >  백엔드 개발  >  Pandas DataFrame의 특정 셀에 목록을 효과적으로 삽입하려면 어떻게 해야 합니까?

Pandas DataFrame의 특정 셀에 목록을 효과적으로 삽입하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-10-30 07:47:28612검색

How do I effectively insert a list into a specific cell of a Pandas DataFrame?

Python pandas: 셀에 목록 삽입

데이터 프레임으로 작업할 때 개별 내용을 조정해야 하는 경우가 많습니다. 세포. 이 경우 작업은 특정 목록 '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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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