Используйте переменную в вызове объекта - PullRequest
1 голос
/ 23 октября 2019

Я пытаюсь использовать переменную в расширенном вызове метода. Я хочу заменить ссылку на объект переменной.

import pandas
data = pandas.read_csv('sample1.csv')
zones = list(data.columns.values)
for zone in zones:
    print(zone)
    varzone = data.zone.tolist()
    print(varzone)

предположим, что зоны равны ['name', 'фамилия']

Я ожидаю, что он будет работать как

varzone = data.name.tolist()

вместо:

varzone = data.zone.tolist()

ОШИБКА:

Traceback (most recent call last):
  File "script1.py", line 10, in <module>
    varzone = data.zone.tolist()
  File "/usr/lib64/python2.7/site-packages/pandas/core/generic.py", line 4376, in __getattr__
    return object.__getattribute__(self, name)
AttributeError: 'DataFrame' object has no attribute 'zone'

1 Ответ

2 голосов
/ 23 октября 2019

Python ищет атрибут с именем zone вместо поиска столбца с именем, хранящимся в zone. Правильный путь будет следующим:

for zone in zones:
    print(zone)
    varzone = data[zone].tolist()
    print(varzone)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...