Python

[Python]Pandas _ Merge, Concat

๊ฐœ๋ฐœ์ž์—ด๋ฌด 2023. 8. 29. 08:49
๋ฐ˜์‘ํ˜•

โœ… Data Load

    # Data Load (df1, df2)


    df = pd.read_csv(DataUrl)
 
    df = df.set_index('Location')

    df1 = df.iloc[:4,:]
    df2 = df.iloc[4:,:]

    display(df1)
    display(df2)

 

โœ… df1, df2 ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์œผ๋กœ ํ•ฉ์น˜๊ธฐ

    # df1, df2 ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์œผ๋กœ ํ•ฉ์น˜๊ธฐ

    total = pd.concat([df1,df2])

    Ans = total

    Ans

 

โœ… df3๊ณผ df4 ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์œผ๋กœ ํ•ฉ์น˜๊ธฐ

    # df3๊ณผ df4 ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์œผ๋กœ ํ•ฉ์น˜๊ธฐ (๋‘˜๋‹ค ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๋…„๋„์— ๋Œ€ํ•ด์„œ๋งŒ ๊ณ ๋ คํ•œ๋‹ค)

    df3 = df.iloc[:2,:4]
    df4 = df.iloc[5:,3:]

    display(df3)
    display(df4)

 

    Ans = pd.concat([df3,df4],join='inner')

    Ans

 

โœ… df3๊ณผ df4 ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์œผ๋กœ ํ•ฉ์น˜๊ธฐ

    # df3๊ณผ df4 ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์œผ๋กœ ํ•ฉ์ณ๋ผ. ๋ชจ๋“  ์ปฌ๋Ÿผ์„ ํฌํ•จํ•˜๊ณ , ๊ฒฐ์ธก์น˜๋Š” 0์œผ๋กœ ๋Œ€์ฒดํ•œ๋‹ค

    Ans = pd.concat([df3,df4],join='outer').fillna(0)

    Ans

 

โœ… df5๊ณผ df6 ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์œผ๋กœ mergeํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•ฉ์น˜๊ธฐ                    (Algeria์ปฌ๋Ÿผ์„ key๋กœ ํ•˜๊ณ  ๋‘ ๋ฐ์ดํ„ฐ ๋ชจ๋‘ ํฌํ•จํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์ถœ๋ ฅ)

    # df5๊ณผ df6 ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์œผ๋กœ mergeํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•ฉ์ณ๋ผ. Algeria์ปฌ๋Ÿผ์„ key๋กœ ํ•˜๊ณ  ๋‘ ๋ฐ์ดํ„ฐ ๋ชจ๋‘ ํฌํ•จํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์ถœ๋ ฅํ•˜๋ผ

    df5 = df.T.iloc[:7,:3]
    df6 = df.T.iloc[6:,2:5]

    display(df5)
    display(df6)

    Ans = pd.merge(df5,df6,on='Algeria',how='inner')

    Ans

 

โœ… df5๊ณผ df6 ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์œผ๋กœ mergeํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•ฉ์น˜๊ธฐ                    (Algeria์ปฌ๋Ÿผ์„ key๋กœ ํ•˜๊ณ  ํ•ฉ์ง‘ํ•ฉ์œผ๋กœ ํ•ฉ์น˜๊ธฐ)

    # df5๊ณผ df6 ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์œผ๋กœ mergeํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•ฉ์ณ๋ผ.
    # Algeria์ปฌ๋Ÿผ์„ key๋กœ ํ•˜๊ณ  ํ•ฉ์ง‘ํ•ฉ์œผ๋กœ ํ•ฉ์น˜๊ธฐ

    Ans = pd.merge(df5,df6,on='Algeria',how='outer')

    Ans

 

 

๋ฐ˜์‘ํ˜•