2017-06-18 98 views
0

我是編程和python的新手。我有一個由熊貓模塊創建的數據框。數據集的索引列是「Rho」,「Capacity」和「Model-Version」。基於這些因素,我進行了一些模擬,並找到了每次運行5次的收入。這些列表示「平均」,「下限」和「上限」。基於行比較刪除python熊貓DataFrame中的特定行

現在我想爲每個特定的Rho和容量找到最好的收入。所以我應該比較不同模型的上限和下限。如果一行的下界高於另一個上界的值,我應該刪除上界小的那一行。

這裏是我當前的代碼:

from pandas import * 

df_rev = DataFrame.from_csv(path="revenue_total.csv", index_col=[3, 4, 5]) 

print(df_rev.iloc[0][2]) 

# removing those revenues in a class that are low: 
for index1, row1 in df_rev.iterrows(): 
    for index2, row2 in df_rev.iterrows(): 
     if index1[0] is index2[0] and index1[1] is index2[1]: 
      if row1[1] > row2[2]: 
       df_rev = df_rev.drop(df_rev.index[index2]) 
      elif row2[1] > row1[2]: 
       df_rev = df_rev.drop(df_rev.index[index1]) 

print(df_rev) 

但是,我知道,這是行不通的。有誰知道我應該怎麼做?

謝謝

回答

0

您應該找到最大的收入。

a = [['a','a',1,5],['a','a',3,4],['a','b',5,6],['b','c',7,8]] 
df = pd.DataFrame(a) 
df = df.set_index([0,1]) 
df.groupby([df.index.get_level_values(0),df.index.get_level_values(1)]).max() 

這使得從分組超過指數在0和1

+0

由於它的工作原理其他列的最大值! –