Как создать переменные с помощью цикла?
Есть следующая таблица:
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]