πŸ”— Как эффСктивно ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ датасСты pandas с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ?

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ датасСты pandas с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ concat().

    
import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… датасСтов с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [7, 8, 9], 'B': [10, 11, 12]})

# ОбъСдинСниС датасСтов ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ
df_combined = pd.concat([df1, df2])

# Π’Ρ‹Π²ΠΎΠ΄ объСдинСнного датасСта
print(df_combined)
    
    

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π΄Π²Π° датасСта, df1 ΠΈ df2, с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ 'A' ΠΈ 'B'. Π—Π°Ρ‚Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° concat() датасСты ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ, ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ сохраняСтся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ df_combined. НаконСц, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹ΠΉ датасСт выводится Π½Π° экран.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ датасСты pandas с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ

Π’ ΠΌΠΈΡ€Π΅ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ машинного обучСния, объСдинСниС датасСтов являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚. Pandas - мощная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Python, ΠΈ ΠΎΠ½Π° прСдоставляСт простыС ΠΈ эффСктивныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для соСдинСния датасСтов с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ.

1. Inner Join

Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ соСдинСниС (inner join) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ значСния Π² ΠΎΠ±ΠΎΠΈΡ… датасСтах Π½Π° основС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ. Для выполнСния inner join Π² Pandas, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ merge.


import pandas as pd

df1 = pd.DataFrame({'Key': ['A', 'B', 'C', 'D'],
                    'Value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'Key': ['B', 'D', 'E', 'F'],
                    'Value': [5, 6, 7, 8]})

merged_df = pd.merge(df1, df2, on='Key', how='inner')
print(merged_df)
    

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, датасСты df1 ΠΈ df2 ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ ΠΏΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ 'Key' с использованиСм Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ соСдинСния. Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ датасСт merged_df Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строки с ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΌΠΈ значСниями Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ 'Key'.

2. Left Join

Π›Π΅Π²ΠΎΠ΅ соСдинСниС (left join) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ всС строки ΠΈΠ· Π»Π΅Π²ΠΎΠ³ΠΎ датасСта ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ строки ΠΈΠ· ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ датасСта Π½Π° основС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ. Для выполнСния left join Π² Pandas, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ merge, ΡƒΠΊΠ°Π·Π°Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ how='left'.


left_merged_df = pd.merge(df1, df2, on='Key', how='left')
print(left_merged_df)
    

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Π»Π΅Π²Ρ‹ΠΉ датасСт df1 ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ΡΡ с ΠΏΡ€Π°Π²Ρ‹ΠΌ датасСтом df2 ΠΏΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ 'Key' с использованиСм Π»Π΅Π²ΠΎΠ³ΠΎ соСдинСния. Π’Π΅ΠΏΠ΅Ρ€ΡŒ датасСт left_merged_df содСрТит всС строки ΠΈΠ· Π»Π΅Π²ΠΎΠ³ΠΎ датасСта ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ строки ΠΈΠ· ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ датасСта.

3. Right Join

ΠŸΡ€Π°Π²ΠΎΠ΅ соСдинСниС (right join) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ всС строки ΠΈΠ· ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ датасСта ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ строки ΠΈΠ· Π»Π΅Π²ΠΎΠ³ΠΎ датасСта Π½Π° основС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ. Для выполнСния right join Π² Pandas, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ merge с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ how='right'.


right_merged_df = pd.merge(df1, df2, on='Key', how='right')
print(right_merged_df)
    

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΏΡ€Π°Π²Ρ‹ΠΉ датасСт df2 ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ΡΡ с Π»Π΅Π²Ρ‹ΠΌ датасСтом df1 ΠΏΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ 'Key' с использованиСм ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ соСдинСния. Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ датасСт right_merged_df Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ всС строки ΠΈΠ· ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ датасСта ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ строки ΠΈΠ· Π»Π΅Π²ΠΎΠ³ΠΎ датасСта.

4. Outer Join

Π’Π½Π΅ΡˆΠ½Π΅Π΅ соСдинСниС (outer join) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ всС строки ΠΈΠ· ΠΎΠ±ΠΎΠΈΡ… датасСтов Π½Π° основС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ. ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ значСния Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ NaN. Для выполнСния outer join Π² Pandas, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ merge с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ how='outer'.


outer_merged_df = pd.merge(df1, df2, on='Key', how='outer')
print(outer_merged_df)
    

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΎΠ±Π° датасСта df1 ΠΈ df2 ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ ΠΏΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ 'Key' с использованиСм внСшнСго соСдинСния. Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ датасСт outer_merged_df Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ всС строки ΠΈΠ· ΠΎΠ±ΠΎΠΈΡ… датасСтов.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π£Ρ€ΠΎΠΊ 4. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Π°Π½Π°Π»ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Python. ОбъСдинСниС Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ² Π² Pandas

ОбъСдинСниС Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠ΅Ρ‚ΠΎΠ΄ merge | Аналитик Π΄Π°Π½Π½Ρ‹Ρ… | karpov.courses

Pandas Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ β„–4. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со столбцами DataFrame

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”— Как эффСктивно ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ датасСты pandas с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ?

Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² pandas: простой ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ