根据条件,Python,Pandas

时间:2017-03-30 09:17:32

标签: python pandas

Hello Stackoverflow社区!

我已经尝试找到我的问题的答案,但没有成功。我基本上试图从excel复制MinIF公式,但到目前为止我只是设法为" 1"一次排。这是我想要实现的一个例子:

Please see attached link

这个想法是,对于具有相同子组的所有产品,找到该组的最低值/价格,并将其插入到其旁边的新列中。 我希望我足够具体,我对python相对较新,而且我根本不知道如何开始......

非常感谢,谢谢。

1 个答案:

答案 0 :(得分:1)

我认为你需要transform

df['SubGroupLowestPrice'] = df.groupby('SubGroup')['Price'].transform('min')

样品:

df = pd.DataFrame({'A':[1,2,3,4,5,5],
                   'SubGroup':[1,5,5,6,6,6],
                   'Price':[7,8,9,10,2,3]})

print (df)
   A  Price  SubGroup
0  1      7         1
1  2      8         5
2  3      9         5
3  4     10         6
4  5      2         6
5  5      3         6

df['SubGroupLowestPrice'] = df.groupby('SubGroup')['Price'].transform('min')
print (df)
   A  Price  SubGroup  SubGroupLowestPrice
0  1      7         1                    7
1  2      8         5                    8
2  3      9         5                    8
3  4     10         6                    2
4  5      2         6                    2
5  5      3         6                    2