2016-07-05 28 views
0

私は、次のしているデータ・セット組み合わせ:私はwを取得したい何Pythonのパンダ - 特定の行を比較して、

Group LowerTier UpperTier Value 
    1   0   99   0  
    1   100   199  0 
    1   200   299  10 
    1   300   1000  20 
    2   0   249  0 
    2   250   1000  5 
(...) 

/Pythonとパンダは以下の通りです:

すなわち
Group LowerTier UpperTier Value 
    1   0   199   0  
    1   200   299  10 
    1   300   1000  20 
    2   0   249  0 
    2   250   1000  5 

:私は希望を値が同じ値を持つグループ内のすべての行を、LowerTierの最小値とdouble値のUpperTierの最大値(グループ1;値= 0など)の下で結合します。

これらのテーブルはどのように入手できますか?事前

答えて

3

おかげで、あなたはaggregategroupbyを試してみましたか?

df.groupby(['Group','Value'],as_index=False).agg({'LowerTier':min,'UpperTier':max}) 

最初にデータフレームを作成します。

df = pd.DataFrame({'Group':[1,1,1,1,2,2],'LowerTier':[0,100,200,300,0,250],'UpperTier':[99,199,299,1000,249,1000],'Value':[0,0,10,20,0,5]}) 

を次にagggroupbyを適用します。

df.groupby(['Group','Value'],as_index=False).agg({'LowerTier':min,'UpperTier':max}) 

出力:

Group Value UpperTier LowerTier 
0 1  0  199   0 
1 1  10  299   200 
2 1  20  1000  300 
3 2  0  249   0 
4 2  5  1000  250 
+0

をありがとうございました!ピボットテーブルを使って作業しましたが、正しいデータフレームを取得できませんでした。 – Sebastian

+0

あなたは歓迎です、パンダとの幸運、それは非常に強力で、それを学ぶ価値があります! – ysearka

関連する問題