Создание функции вывода графиков для разных датафреймов

Есть два датафрейма df1 и df2.

df1:

   A B C   
0  1 2 3
1  4 5 6
2  7 8 9

df2:

   Z X V   
0  1 2 3
1  4 5 6
2  7 8 9

Нужно создать функцию, которая рисует рядом два графика, в которых отображается зависимость значений одного столбца от другого. Написал вот такую конструкцию:

def show_me_comparison(data1, data2, name):
    fig, axes = plt.subplots(1,2)
    data1.plot(x='A', y='B', kind='scatter', ax=axes[0])
    plt.title(name)
    data2.plot(x='Z', y='X', kind='scatter', ax=axes[1])   

Ну и вызываю ее

show_me_comparison(df1, df2, 'Хороший график')

Собственно, вопрос в том, как правильно вписать в функцию обращение к нужным столбцам датафрейма, чтобы она стала универсальной для любого датафрейма. Что-то совсем не получается, уже много всего перепробовал. Хочу, чтобы было вот так:

def show_me_comparison(data1, data2, столбец1, столбец2, name):
    fig, axes = plt.subplots(1,2)
    data1.plot(x='столбец1', y='столбец2', kind='scatter', ax=axes[0])
    plt.title(name)
    data2.plot(x='Z', y='X', kind='scatter', ax=axes[1])   

show_me_comparison(df1, df2, A, B, 'Хороший график')

Ответы (1 шт):

Автор решения: strawdog

Ну так переделайте функцию в универсальную, которая будет брать первую и вторую колонки датафрейма:

import pandas as pd
import matplotlib.pyplot as plt

df1 = pd.DataFrame({'A':[1,4,7], 'B':[2,5,8], 'C':[3,6,9]})
df2 = pd.DataFrame({'Z':[2,5,8], 'X':[3,6,9], 'V':[4,7,10]})

def show_me_comparison(data1, data2, name):
    fig, axes = plt.subplots(1,2)
    data1.plot(data1.columns.values[0], data1.columns.values[1], kind='scatter', ax=axes[0])
    plt.title(name)
    data2.plot(data2.columns.values[0], data2.columns.values[1], kind='scatter', ax=axes[1])   

show_me_comparison(df1, df2, 'test')

введите сюда описание изображения

UPDATE

Со срезами:

import pandas as pd
import matplotlib.pyplot as plt

df1 = pd.DataFrame({'A':[1,4,7], 'B':[2,5,8], 'C':[3,6,9]})
df2 = pd.DataFrame({'Z':[2,5,8], 'X':[3,6,9], 'V':[4,7,10]})

def show_me_comparison(data1, data2, name):
    fig, axes = plt.subplots(1,2)
    data1.plot(data1.columns.values[0], data1.columns.values[1], kind='scatter', ax=axes[0])
    plt.title(name)
    data2.plot(data2.columns.values[0], data2.columns.values[1], kind='scatter', ax=axes[1])   
    plt.tight_layout()

show_me_comparison(df1, df2, 'test')
show_me_comparison(df1, df2[['Z', 'V']], 'test')
plt.show()

введите сюда описание изображения

→ Ссылка