2016-04-11 9 views
1

複数のインデックスフレームを持つ4列のpandasを使用して、いくつかのデータフレーム操作を管理しようとしています。その列では、ある行の値を特定の行で割った値に等しくなります。特定の列/行の値間のpandasデータフレームの操作

私の例では、新しいタイプの列 "Agg"を各タイプ(1,2,3)の "Values"列の結果として " 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「日付」やその他のインデックスを持っています。これらの変更は、DBへのクエリからの結果に依存します。

ありがとうございます!

+0

は 'DF [ 'AGG'] =のDF [ '値']の後にあなたをされている。DIV([ '値'] DF。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

いくつかのケースでは完全に機能しましたが、値を切り離してコードのextra_columnを追加することになりました。ありがとう! –

関連する問題