Как создать переменные с помощью цикла?

Есть следующая таблица:

df = pd.DataFrame(
           {"id": [1, 2, 3],
            "a" : [4, 5, 6],
            "b" : [7, 8, 9]})
df

Необходимо получить следующий вывод:

c1 = (4, 7)
c2 = (5, 8)
c3 = (6, 9)

В этом коде есть ошибка:

for i in range(0, int(df.shape[0])): 
    x[i] = (df.iloc[i, 1])
    y[i] = (df.iloc[i, 2])
    print(x[i], y[i])
    

for n in range(0, 2):      
    coordinates = [x[i], y[i]]
    c[n] = (coordinates[0], coordinates[1])
    print(c[n])


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

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

Вот то, что вы требовали:

import pandas as pd

df = pd.DataFrame(
           {"id": [1, 2, 3],
            "a" : [4, 5, 6],
            "b" : [7, 8, 9]})

res = []
x = [[]] * int(df.shape[0])
y = [[]] * int(df.shape[1])
for i in range(0, int(df.shape[0])): 
    x[i] = (df.iloc[i, 1])
    y[i] = (df.iloc[i, 2])
    res.append([x[i], y[i]])
    

for n, list_val in enumerate(res):      
    coordinates = list_val
    c = f'c{n + 1} = {(coordinates[0], coordinates[1])}'
    print(c)

Вывод:

c1 = (4, 7)
c2 = (5, 8)
c3 = (6, 9)
→ Ссылка
Автор решения: MaxU

Вы же работаете с всемогущим Pandas - пользуйтесь хотя бы частичкой его мощи:

In [220]: c = df[["a", "b"]].to_numpy().tolist()

In [221]: c
Out[221]: [[4, 7], [5, 8], [6, 9]]

если вы абсолютно уверены, что строк всегда будет три:

In [222]: c1,c2,c3 = df[["a", "b"]].to_numpy().tolist()

In [223]: c1
Out[223]: [4, 7]

In [224]: c2
Out[224]: [5, 8]

In [225]: c3
Out[225]: [6, 9]
→ Ссылка