我是编程和python的新手。我有一个由pandas模块创建的DataFrame。数据集的索引列是" Rho","容量"和"模型 - 版本"。基于这些因素,我进行了一些模拟,发现每次运行的收入为5次。列指示"平均","下限"和"上限"。
现在我想为每个特定的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 :(得分: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上分组的其他列的最大值。