请教大神python分段统计
有一个dataframe如下,序号为顺序流水号,单重为随机浮点数,数量为随机int:我需要按序号列流水号来分别统计单重max
比如:分别要index:0-3对应单重的最大值,3-4对应单重的最大值,5-9对应单重的最大值,10-12对应单重的最大值,13-17对应单重的最大值
序号列最大值不固定,但每段都是从1累加开始
请教大神该如何操作?方法越多越好。
谢谢!!
index 序号 单重 数量
0 1 3.6 2
1 2 3.2 3
2 3 3.4 5
3 1 3.4 4
4 2 3.6 2
5 1 3.5 3
6 2 3.4 6
7 3 3.5 7
8 4 3.2 5
9 5 3.3 2
10 1 3.4 1
11 2 3.2 2
12 3 3.4 2
13 1 3.5 3
14 2 3.6 5
15 3 3.3 2
16 4 3.2 3
17 5 3.2 5
这玩意还用得着越多方法越好吗?应该是越简便越好。
这里面难点其实就是分组,只要做好了分组,直接一个groupby就搞定了。
代码中的excel文件,就是楼主粘贴出来的东西。
import pandas as pd
import numpy as np
fpath = r'C:\Users\admin\Desktop\新建 Microsoft Excel 工作表 (3).xlsx'
df = pd.read_excel(fpath)
df['分组'] = np.nan
df.loc==1, '分组'] = range(len(df.loc==1]))
df['分组'] = df['分组'].ffill()
print(df.groupby('分组').max()['单重']) 彩色沙漠 发表于 2022-4-28 13:25
这玩意还用得着越多方法越好吗?应该是越简便越好。
这里面难点其实就是分组,只要做好了分组,直接一个 ...
大神威武!:victory: 彩色沙漠 发表于 2022-4-28 13:25
这玩意还用得着越多方法越好吗?应该是越简便越好。
这里面难点其实就是分组,只要做好了分组,直接一个 ...
竟然没看懂,请问只用pd可否,一定要用到np嘛? 彩色沙漠 发表于 2022-4-28 13:25
这玩意还用得着越多方法越好吗?应该是越简便越好。
这里面难点其实就是分组,只要做好了分组,直接一个 ...
分组好像不太对吧,最后一条数据应该出来3.6 叫我小王叔叔 发表于 2022-4-28 15:45
竟然没看懂,请问只用pd可否,一定要用到np嘛?
pandas 里的nan也是np里的。 JuncoJet 发表于 2022-4-28 16:32
分组好像不太对吧,最后一条数据应该出来3.6
我算出来没发现问题哦?
叫我小王叔叔 发表于 2022-4-28 15:45
竟然没看懂,请问只用pd可否,一定要用到np嘛?
他这里的numpy只是用来生成一个全是缺失值的列,然后定位每个分组的起点(序号=1),之后前向填充(ffill) gzq830510 发表于 2022-4-28 17:03
他这里的numpy只是用来生成一个全是缺失值的列,然后定位每个分组的起点(序号=1),之后前向填充(ffill ...
感谢大佬解答,学渣属性暴露无遗,我还是没看明白。我好好研究一下问题。 彩色沙漠 发表于 2022-4-28 16:48
pandas 里的nan也是np里的。
感谢大佬解答。
页:
[1]