Як об’єднати кілька фреймів даних у pandas (з прикладом)
Ви можете використовувати такий синтаксис, щоб об’єднати кілька DataFrames одночасно в pandas:
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)
У наступному прикладі показано, як використовувати цей синтаксис на практиці:
Приклад: об’єднання кількох DataFrames у Pandas
Припустімо, що у нас є такі три фрейми даних panda, які містять інформацію про баскетболістів різних команд:
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
Ми можемо використати такий синтаксис, щоб об’єднати три DataFrames в один:
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 .
Примітка : ви можете знайти повну документацію функції злиття в pandas тут .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові операції в pandas:
Як об’єднати два Pandas DataFrames в індексі
Як об’єднати Pandas DataFrames у кількох стовпцях
Як скласти кілька Pandas DataFrames