2016-04-11 2 views
1

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

В моем примере ниже я хотел бы, чтобы новый столбец «Agg» был результатом столбца «Значения» для каждого типа (1, 2, 3), деленного на «Значения» для Calc.

 Date  Values Agg 
2016-01-01 Type 1 17  1.7 
      Type 2 23  2.3 
      Type 3 11  1.1 
      Calc  10  1.0 
2016-01-02 Type 1 25  0.25 
      Type 2 39  0.39 
      Type 3 34  0.34 
      Calc  100 1.00 
2016-01-03 Type 1 20  1.00 
      Type 2 9  0.45 
      Type 2 12  0.60 
      Calc  20  1.00 

В моем фактическом коде есть GroupBy «Дата» и другие индексы: эти изменения в зависимости от результатов запроса к БД.

Заранее благодарен!

+0

К сожалению вы после 'ф.р. [ 'Agg'] = D [ 'Значения']. ДИВ (ДФ [ 'Значения']. Iloc [-1])'? – EdChum

+0

Привет, Эд, спасибо за ваш ответ. В моем коде у меня есть несколько дат и значение строки «Calc» для каждого. Мне нужно найти способ упомянуть, что я хочу, чтобы это конкретное значение для деления для данной даты в индексе. –

+0

Можете ли вы сформулировать свой вопрос, чтобы лучше объяснить? – EdChum

ответ

0

Приведенный ниже код работает. Я потратил слишком много времени на это, поэтому я должен оставить это на этом. Дайте мне знать, если вам нужны объяснения!

def func(df1): 
    idx = df1.index.get_level_values(0)[0] 
    df1 = df1.loc[idx] 
    return (df1['Values']/df1.loc['Calc']['Values']).to_frame() 

df.groupby(level=0).apply(func) 
+0

В некоторых случаях это отлично работало, но в итоге я выделил значение и добавил дополнительный_колон для моего кода, поэтому я избегаю ошибок в передаче данных. Благодаря! –

Смежные вопросы