[Pandas] 데이터 분석을 위한 판다스 사용법 - 6. 데이터 편집

2023. 7. 6. 02:35
반응형

Pandas

파이썬에서 데이터 분석에 많이 이용함, 3가지 형태의 자료 구조와 연산 지원

 

연산

- 데이터 선택
- 데이터 가공
- 데이터 분석

- 데이터 편집



데이터 편집

자료의 구조를 제어하는 연산

  1. Concat
  2. Merge
  3. Join

 

1. Concat

자료구조를 연결하는 연산

 

df1 = pd.DataFrame(
    {
        "A": ['a00', 'a01', 'a02'],
        "B": ['b00', 'b01', 'b02'],
        "C": ['c00', 'c01', 'c02']
    }
)
df1
df2 = pd.DataFrame(
    {
        "B": ['B00', 'B01', 'B02'],
        "C": ['C00', 'C01', 'C02'],
        "D": ['D00', 'D01', 'D02']
    }
)
df2

 

 

pd.concat([df1, df2])

pd.concat([df2, df1])

 

 

Axis와 Join 유형 설정하기

- inner join(교집합), outer join(합집합), left join, right join

- pd.concat([df1, df2], axis=0, join="inner") #행으로 inner join(행의 교집합)

- pd.concat([df1, df2], axis=1, join="outer") #열로 outer join(열의 합집합)

 

pd.concat([df1, df2], axis=0, join="inner")  #행으로 inner join(행의 교집합)

 

pd.concat([df1, df2], axis=1, join="inner") #열로 inner join(열의 교집합)

 

pd.concat([df1, df2], axis=0, join="outer") #행으로 outer join(행의 합집합)

 

pd.concat([df1, df2], axis=1, join="outer") #열로 outer join(열의 합집합)

 

 

 

2. Merge

Key(기준 컬럼)을 기준으로 결합
df1 = pd.DataFrame({
    "key": ["k0", "k1", "k2", "k3"],
    "A": ["a00", "a01", "a02", "a03"],
    "B": ["a10", "a11", "a12", "a13"],
})

df1
df2 = pd.DataFrame({
    "key": ["k0", "k1", "k2", "k3"],
    "C": ["b00", "b01", "b02", "b03"],
    "D": ["b10", "b11", "b12", "b13"],
})
df2

 

pd.merge(df1, df2, on="key")

 

pd.merge(df2, df1, on="key")

 

 

df3 = pd.DataFrame({
    "key1": ["k0", "k1", "k2", "k3"],
    "key2": ["k1", "k2", "k3", "k3"],
    "A": ["a00", "a01", "a02", "a03"],
    "B": ["a10", "a11", "a12", "a13"],
})

df3
df4 = pd.DataFrame({
    "key1": ["k0", "k1", "k1", "k3"],
    "key2": ["k1", "k2", "k2", "k4"],
    "A": ["b00", "b01", "b02", "b03"],
    "B": ["b10", "b11", "b12", "b13"],
})

df4

 

pd.merge(df3, df4, on="key1") #교집합에 대한 Key값이 결합함 (key1 -> k0, k1, k3)

 

pd.merge(df3, df4, on="key2") #교집합에 대한 Key값이 결합함 (key2 -> k1, k2)

 

pd.merge(df3, df4, on=["key1", "key2"]) #교집합에 대한 Key값이 결합함 (key1과 key2의 그룹)

 

pd.merge(df3, df4, how="left", on=["key1", "key2"])  #df3 key기준

 

pd.merge(df3, df4, how="right", on=["key1", "key2"])  #df4 key기준

 

 

3. Join

자료구조를 연결하는 함수

 

df5 = pd.DataFrame({
    "A": ["a00", "a01", "a02"],
    "B": ["a10", "a11", "a12"],
},
index = ["k0", "k1", "k2"])

df5
df6 = pd.DataFrame({
    "C": ["b00", "b01", "b02"],
    "D": ["b10", "b11", "b12"],
},
index = ["k0", "k2", "k3"])

df6

 

 

df5.join(df6) #left join

 

 

df6.join(df5) #right join

 

df5.join(df6, how="inner") #inner join

 

df5.join(df6, how="outer") #outer join

반응형

BELATED ARTICLES

more