Pandas에서 여러 dataframe을 병합하는 방법(예제 포함)


다음 구문을 사용하여 Pandas에서 여러 DataFrame을 한 번에 병합할 수 있습니다.

 import pandas as pd
from functools import reduce

#define list of DataFrames
dfs = [df1, df2, df3]

#merge all DataFrames into one
final_df = reduce(lambda left,right: pd.merge (left,right,on=[' column_name '],
                                            how=' outer '), dfs)

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: Pandas에서 여러 DataFrame 병합

서로 다른 팀의 농구 선수에 대한 정보가 포함된 다음 세 개의 팬더 DataFrame이 있다고 가정합니다.

 import pandas as pd

#createDataFrames
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D'],
                    ' points ': [18, 22, 19, 14]})

df2 = pd. DataFrame ({' team ': ['A', 'B', 'C'],
                    ' assists ': [4, 9, 14]})

df3 = pd. DataFrame ({' team ': ['C', 'D', 'E', 'F'],
                    ' rebounds ': [10, 17, 11, 10]})

#view DataFrames
print (df1)

  team points
0 to 18
1 B 22
2 C 19
3 D 14

print (df2)

  team assists
0 to 4
1 B 9
2 C 14

print (df3)

  team rebounds
0 C 10
1 D 17
2 E 11
3 F 10

다음 구문을 사용하여 세 개의 DataFrame을 하나로 병합할 수 있습니다.

 from functools import reduce

#define list of DataFrames
dfs = [df1, df2, df3]

#merge all DataFrames into one
final_df = reduce(lambda left,right: pd.merge (left,right,on=[' team '],
                                            how=' outer '), dfs)

#view merged DataFrame
print (final_df)

  team points assists rebounds
0 A 18.0 4.0 NaN
1 B 22.0 9.0 NaN
2 C 19.0 14.0 10.0
3 D 14.0 NaN 17.0
4 E NaN NaN 11.0
5 F NaN NaN 10.0

최종 결과는 세 가지 DataFrame의 정보를 모두 포함하는 DataFrame입니다.

NaN 값은 최종 DataFrame의 빈 셀을 채우는 데 사용됩니다.

NaN 이외의 값을 사용하여 빈 셀을 채우려면 fillna() 함수를 사용할 수 있습니다.

 from functools import reduce

#define list of DataFrames
dfs = [df1, df2, df3]

#merge all DataFrames into one
final_df = reduce(lambda left,right: pd.merge (left,right,on=[' team '],
                                            how=' outer '), dfs). fillna (' none ')

#view merged DataFrame
print (final_df)

  team points assists rebounds
0 A 18.0 4.0 none
1 B 22.0 9.0 none
2 C 19.0 14.0 10.0
3 D 14.0 none 17.0
4 E none none 11.0
5 F none none 10.0

이제 각 빈 셀은 NaN 대신 ” none “으로 채워집니다.

참고 : 여기 에서 pandas의 병합 기능에 대한 전체 문서를 찾을 수 있습니다.

추가 리소스

다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

인덱스에 두 개의 Pandas DataFrame을 병합하는 방법
여러 열에 걸쳐 Pandas DataFrame을 병합하는 방법
여러 Pandas DataFrame을 스택하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다