Для Loop и Pandas - установка атрибута из списка или переменной - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть кадр данных Pandas с большим количеством столбцов.Внутри цикла FOR я каждый раз выбираю разные подмножества этих полей.

myList = ['column1', 'column2', 'column3']
for column in myList:
    df2 = df[['Day', column]]
    value = df2.column.min()
    value2 = df2.ix[df2.column.idxmin()]

Для значения я получаю сообщение об ошибке: «Dataframe не имеет атрибута« столбец »», поэтому я, очевидно, имеюполучил синтаксическую ошибку.Заранее спасибо.

РЕДАКТИРОВАТЬ: Примерные кадры данных по запросу:

df = pd.DataFrame([
    ['Monday', 4936.00, 5036.00, 130.18, 140.18, 40.67, 41.67, 166.96, 
    168.96, 145.87, 145.87],
    ['Tuesday', 5258.82, 5358.82, 141.99, 146.99, 41.00, 43.00, 169.70, 
    172.70, 155.00, 165.00]])

df2 = pd.Dataframe([
    ['Monday', 4936.00],
    ['Tuesday', 5258.82]])

На каждой итерации цикла числа в df2 перемещаются на одну позицию вправо.

1 Ответ

0 голосов
/ 07 декабря 2018

Вы можете передать столбец следующим образом:

for c in myList:
    df2 = df[['Day','{}'.format(c)]]
    value = df2['{}'.format(c)].min()
    value2 = df2.ix[df2['{}'.format(c)].idxmin()]    

Редактировать: Заметка, поскольку ix является устаревшим , замените его на iloc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...