简体   繁体   English

在 padas 数据帧中的每一行之后获取最小值和最大值

[英]Getting min and max after every row in padas dataframe

i'm trying to create columns to represent min/max after every row within a group.我正在尝试在组中的每一行之后创建列来表示最小值/最大值。

original df原始文件

╔═══════╦═══════╦════════╗
║ color ║ panel ║ result ║
╠═══════╬═══════╬════════╣
║ blue  ║ b     ║      4 ║
║ blue  ║ b     ║      3 ║
║ blue  ║ b     ║      3 ║
║ blue  ║ b     ║      5 ║
║ blue  ║ b     ║      4 ║
║ blue  ║ b     ║      7 ║
║ blue  ║ b     ║      1 ║
║ blue  ║ b     ║      5 ║
║ blue  ║ b     ║      3 ║
║ blue  ║ b     ║      2 ║
╚═══════╩═══════╩════════╝

result trying to get试图得到的结果

╔═══════╦═══════╦════════╦═════╦═════╗
║ color ║ panel ║ result ║ min ║ max ║
╠═══════╬═══════╬════════╬═════╬═════╣
║ blue  ║ b     ║      4 ║   4 ║   4 ║
║ blue  ║ b     ║      3 ║   3 ║   4 ║
║ blue  ║ b     ║      3 ║   3 ║   4 ║
║ blue  ║ b     ║      5 ║   3 ║   5 ║
║ blue  ║ b     ║      4 ║   3 ║   5 ║
║ blue  ║ b     ║      7 ║   3 ║   7 ║
║ blue  ║ b     ║      1 ║   1 ║   7 ║
║ blue  ║ b     ║      5 ║   1 ║   7 ║
║ blue  ║ b     ║      3 ║   1 ║   7 ║
║ blue  ║ b     ║      2 ║   1 ║   7 ║
╚═══════╩═══════╩════════╩═════╩═════╝
data = {'color':['blue','blue','blue','blue','blue','blue','blue','blue','blue','blue'],
        'panel':['b','b','b','b','b','b','b','b','b','b'],
        'result':[4,3,3,5,4,7,1,5,3,2]}

kindly advise.好心提醒。 thank you谢谢你

You want cummin and cummax你想cummincummax

data.result.cummin()
data.result.cummax()

Use GroupBy.agg with GroupBy.cummax and GroupBy.cummin and assign to new columns (it is possible, because output is DataFrame with same size like original):GroupBy.aggGroupBy.cummaxGroupBy.cummin并分配给新列(这是可能的,因为输出是与原始大小相同的 DataFrame):

df[['min','max']] = df.groupby(['color','panel'])['result'].agg(['cummin','cummax'])
print (df)
  color panel  result  min  max
0  blue     b       4    4    4
1  blue     b       3    3    4
2  blue     b       3    3    4
3  blue     b       5    3    5
4  blue     b       4    3    5
5  blue     b       7    3    7
6  blue     b       1    1    7
7  blue     b       5    1    7
8  blue     b       3    1    7
9  blue     b       2    1    7

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM