[PYTHON] 파이썬 팬더가 목록을 셀에 삽입합니다.
PYTHON파이썬 팬더가 목록을 셀에 삽입합니다.
나는 목록 'abc'와 데이터 프레임 'df'를 가지고있다 :
abc = ['foo', 'bar']
df =
A B
0 12 NaN
1 23 NaN
셀 1B에 목록을 삽입하고자하므로이 결과를 원합니다.
A B
0 12 NaN
1 23 ['foo', 'bar']
내가 그럴 수있어?
1) 내가 이것을 사용하면 :
df.ix[1,'B'] = abc
다음과 같은 오류 메시지가 나타납니다.
ValueError: Must have equal len keys and value when setting with an iterable
행 / 열에는 두 요소가있는 목록을 삽입하려고하지만 셀에는 삽입하지 않기 때문입니다.
2) 내가 이것을 사용하면 :
df.ix[1,'B'] = [abc]
'abc'목록 ([[ 'foo', 'bar']]) 인 하나의 요소 만있는 목록을 삽입합니다.
3) 내가 이것을 사용하면 :
df.ix[1,'B'] = ', '.join(abc)
(foo, bar) 문자열을 삽입하지만 목록은 삽입하지 않습니다.
4) 내가 이것을 사용하면 :
df.ix[1,'B'] = [', '.join(abc)]
목록을 삽입하지만 원하는 요소가 두 개 ([ 'foo', 'bar']) 만 있으면됩니다 ([ 'foo, bar']).
도와 주셔서 감사합니다!
새로운 데이터 프레임과 이전 목록 :
abc = ['foo', 'bar']
df2 =
A B C
0 12 NaN 'bla'
1 23 NaN 'bla bla'
다른 데이터 프레임 :
df3 =
A B C D
0 12 NaN 'bla' ['item1', 'item2']
1 23 NaN 'bla bla' [11, 12, 13]
df2.loc [1, 'B'] 및 / 또는 df3.loc [1, 'B']에 'abc'목록을 삽입하고 싶습니다.
데이터 프레임에 정수 값 및 / 또는 NaN 값 및 / 또는 목록 값이있는 열만있는 경우 셀에 목록을 삽입하면 완벽하게 작동합니다. 데이터 프레임에 문자열 값 및 / 또는 NaN 값 및 / 또는 목록 값만있는 열이있는 경우 셀에 목록을 삽입하면 완벽하게 작동합니다. 그러나 데이터 프레임에 정수 및 문자열 값과 다른 열이있는 경우 다음을 사용하면 오류 메시지가 나타납니다. df2.loc [1, 'B'] = abc 또는 df3.loc [1, 'B'] = abc.
다른 데이터 프레임 :
df4 =
A B
0 'bla' NaN
1 'bla bla' NaN
이러한 삽입은 완벽하게 작동합니다. df.loc [1, 'B'] = abc 또는 df4.loc [1, 'B'] = abc.
해결법
-
==============================
1.set_value는 버전 0.21.0부터 사용되지 않으므로 at를 사용해야합니다. loc처럼 ValueError를 높이 지 않고 목록을 셀에 삽입 할 수 있습니다. 이것은 항상 단일 값을 참조하기 때문에 loc이 값과 행 및 열을 참조 할 수 있기 때문에 이것이라고 생각합니다.
set_value는 버전 0.21.0부터 사용되지 않으므로 at를 사용해야합니다. loc처럼 ValueError를 높이 지 않고 목록을 셀에 삽입 할 수 있습니다. 이것은 항상 단일 값을 참조하기 때문에 loc이 값과 행 및 열을 참조 할 수 있기 때문에 이것이라고 생각합니다.
df = pd.DataFrame(data={'A': [1, 2, 3], 'B': ['x', 'y', 'z']}) df.at[1, 'B'] = ['m', 'n'] df = A B 0 1 x 1 2 [m, n] 2 3 z
-
==============================
2.df3.set_value (1, 'B', abc)는 모든 데이터 프레임에서 작동합니다. 열 'B'의 데이터 유형을 처리하십시오. 예 : 플로피 열에 목록을 삽입 할 수 없습니다. df [ 'B'] = df [ 'B']. astype (object)가 도움이 될 수 있습니다.
df3.set_value (1, 'B', abc)는 모든 데이터 프레임에서 작동합니다. 열 'B'의 데이터 유형을 처리하십시오. 예 : 플로피 열에 목록을 삽입 할 수 없습니다. df [ 'B'] = df [ 'B']. astype (object)가 도움이 될 수 있습니다.
-
==============================
3.이 게시물에서 언급했듯이 pandas : 데이터 프레임에리스트를 저장하는 방법; 데이터 프레임의 dtypes는 결과에 영향을 미치고 데이터 프레임을 호출하거나 할당되지 않을 수 있습니다.
이 게시물에서 언급했듯이 pandas : 데이터 프레임에리스트를 저장하는 방법; 데이터 프레임의 dtypes는 결과에 영향을 미치고 데이터 프레임을 호출하거나 할당되지 않을 수 있습니다.
from https://stackoverflow.com/questions/26483254/python-pandas-insert-list-into-a-cell by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 어떻게 파이썬은 내장 함수 pow ()를 구현 했습니까? (0) | 2018.10.12 |
---|---|
[PYTHON] 따옴표 안에 따옴표 사용 (0) | 2018.10.12 |
[PYTHON] Shebang Notation : Windows와 Linux상의 Python 스크립트? (0) | 2018.10.12 |
[PYTHON] NumPy는 인덱스 목록을 사용하여 행당 특정 열 인덱스를 선택합니다. (0) | 2018.10.12 |
[PYTHON] '파이썬'이 내부 또는 외부 명령으로 인식되지 않습니다. (0) | 2018.10.12 |