[pandas] 데이터 프레임 2개를 concat할 때 열을 교대로 concat하는 방법
다음 두개의 데이터 프레임이 있다 import pandas as pd data1 = [[1, 2, 3], [4, 5, 6]] data2 = [[5, 2, 4], [3, 5, 1]] df1 = pd.DataFrame(data1, columns=['a1', 'd1', 'c1']) df2 = pd.DataFrame(data2, columns=['a2', 'd2', 'c2']) df1 df2 df1과 df2의 열을 교대로 합쳐보자. 열의 순서가 a1-a2-d1-d2-c1-c2가 되면 된다 그냥 concat한 다음에 sort_index 함수로 정렬을 하면 그저 a1-a2-c1-c2-d1-d2의 순서가 되므로 가능하지 않다 다음의 방법을 사용하자 1. 먼저 df1.columns와 df2.columns를 교대로 합친..
2023. 5. 4.
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
에러 메세지 ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 번역: 시리즈의 진릿값은 모호합니다. a.empty, a.bool(), a.item(), a.any() 또는 a.all()을 사용하세요. 이 오류는 판다스 초심자에게 매우 자주 발생하는 에러 중 하나입니다. 여러 가지 원인이 있을 수 있지만 특히, 조건문을 작성할 때 논리 연산을 잘못 사용할 때 빈번하게 발생합니다. 에러 발생 상황 에러가 발생하는 상황을 예시와 함께 살펴보겠습니다.import pandas as pd# 예시 데이터 프레임 생성df = pd.DataFrame( {'name': [..
2023. 5. 3.
ValueError: Cannot subset columns with a tuple with more than one element. Use a list instead.
import pandas as pd df = pd.DataFrame({'name': ['a', 'b', 'a', 'c'], 'colA': [ 3, 2, 5, 1], 'colB': [ 1, 2, 3, 4]}) df 예의 데이터 프레임을 name으로 그룹화 해서 colA와 colB를 모두 합산을 하고 싶다면 아래와 같은 코드를 사용하면 된다 df.groupby('name')[['colA', 'colB']].sum() groupby를 복수의 열에 적용하려면 대괄호 안에 리스트를 넣는 이중 대괄호가 되어야 한다. [['colA', 'colB']] 이것을 단일 대괄호 안에 넣으면 판다스 +2.0 부터 아래의 에러가 발생하니 반드시 이중대괄호에 넣자 df.groupby('name')['colA', 'colB'].s..
2023. 5. 3.