πŸ”—ΠšΠ°ΠΊ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ 2 dataframe pandas: руководство с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ ΡΠΎΠ²Π΅Ρ‚Π°ΠΌΠΈπŸ”—

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ 2 DataFrame Π² Pandas ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ merge(). Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ±Π° DataFrame, Π° Ρ‚Π°ΠΊΠΆΠ΅ столбСц ΠΈΠ»ΠΈ столбцы ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ объСдинСниС. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ DataFrame
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
                    'B': ['B0', 'B1', 'B2', 'B3'],
                    'C': ['C0', 'C1', 'C2', 'C3'],
                    'D': ['D0', 'D1', 'D2', 'D3']},
                   index=[0, 1, 2, 3])

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ DataFrame
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
                    'B': ['B4', 'B5', 'B6', 'B7'],
                    'C': ['C4', 'C5', 'C6', 'C7'],
                    'D': ['D4', 'D5', 'D6', 'D7']},
                   index=[4, 5, 6, 7])

# ОбъСдиняСм DataFrame
merged_df = df1.merge(df2, on=['A', 'B'])

# Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹ΠΉ DataFrame
print(merged_df)

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

Как ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ 2 dataframe Π² пандас

Когда Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ манипуляциями с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, часто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ нСсколько dataframe Π² ΠΎΠ΄ΠΈΠ½. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Pandas Π² Python прСдоставляСт нСсколько способов для объСдинСния dataframe. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я расскаТу Π²Π°ΠΌ ΠΎ Π΄Π²ΡƒΡ… основных ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…: объСдинСниС ΠΏΠΎ столбцам ΠΈ объСдинСниС ΠΏΠΎ индСксам.

ОбъСдинСниС ΠΏΠΎ столбцам

ΠœΠ΅Ρ‚ΠΎΠ΄ concat() Π² Pandas позволяСт ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ dataframe ΠΏΠΎ столбцам. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ список dataframe, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ, ΠΈ Π²Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ dataframe, содСрТащий всС столбцы ΠΈΠ· исходных dataframe.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ объСдинСниС Π΄Π²ΡƒΡ… dataframe ΠΏΠΎ столбцам:

import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ dataframe 1
data1 = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df1 = pd.DataFrame(data1)

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ dataframe 2
data2 = {'C': [7, 8, 9], 'D': [10, 11, 12]}
df2 = pd.DataFrame(data2)

# ОбъСдиняСм dataframe
result = pd.concat([df1, df2], axis=1)
print(result)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм Π΄Π²Π° dataframe (df1 ΠΈ df2) ΠΈ объСдиняСм ΠΈΡ… ΠΏΠΎ столбцам с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° concat() ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° axis=1. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ dataframe, содСрТащий всС столбцы ΠΈΠ· ΠΎΠ±ΠΎΠΈΡ… исходных dataframe.

ОбъСдинСниС по индСксам

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ dataframe ΠΏΠΎ ΠΈΡ… индСксам, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ merge() Π² Pandas. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ выполняСт объСдинСниС ΠΏΠΎ ΠΎΠ±Ρ‰ΠΈΠΌ значСниям индСксов.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ объСдинСниС Π΄Π²ΡƒΡ… dataframe ΠΏΠΎ индСксам:

import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ dataframe 1
data1 = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df1 = pd.DataFrame(data1)

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ dataframe 2
data2 = {'C': [7, 8, 9], 'D': [10, 11, 12]}
df2 = pd.DataFrame(data2)

# ОбъСдиняСм dataframe
result = pd.merge(df1, df2, left_index=True, right_index=True)
print(result)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм Π΄Π²Π° dataframe (df1 ΠΈ df2) ΠΈ объСдиняСм ΠΈΡ… ΠΏΠΎ индСксам с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° merge() ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² left_index=True ΠΈ right_index=True. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ dataframe, содСрТащий ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΎΠ±ΠΎΠΈΡ… исходных dataframe ΠΏΠΎ индСксам.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ОбъСдинСниС dataframe - это ваТная Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Когда Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ dataframe, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ concat() ΠΈ merge() Π² Pandas. ΠœΠ΅Ρ‚ΠΎΠ΄ concat() позволяСт ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ dataframe ΠΏΠΎ столбцам, Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ merge() - ΠΏΠΎ индСксам.

НадСюсь, эта ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ 2 dataframe Π² Pandas. Π£Π΄Π°Ρ‡ΠΈ Π² Π²Π°ΡˆΠΈΡ… исслСдованиях Π΄Π°Π½Π½Ρ‹Ρ…!

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

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

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

Python для Data Science: Π£Ρ€ΠΎΠΊ 7:Pandas - GroupBy, Merge, Join

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

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ loc Π² pandas?

πŸ”₯ Как ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ pandas dataframe: простыС шаги для скачивания

πŸ”—ΠšΠ°ΠΊ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ 2 dataframe pandas: руководство с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ ΡΠΎΠ²Π΅Ρ‚Π°ΠΌΠΈπŸ”—