如果我有一个像这样的 pandas 数据框:
df = pd.DataFrame([
['A' ,0],['B', 2 ],['C', 2],['D', 1],
['E', 3 ],['F', 2 ],['G', 1],['H', 3],['I', 2 ]
], columns=['l', 'A'])
A
A 0
B 2
C 2
D 1
E 3
F 2
G 1
H 3
I 2
如何对数据进行重新采样,以便在加起来 5 后提取最接近的值,从而得到如下所示的数据框:
A
D 1
F 2
I 2
最佳答案
您可以使用 pandas cumsum()
函数按累积和进行分组,然后除以 5 并保留新被除数的整数值的第一次出现。例如:
df['cumsum'] = (df['A'].cumsum()//5).replace(0,np.nan)
df.groupby('cumsum').first() ## keep first
Out[1]:
l A
cumsum
1.0 D 1
2.0 F 2
3.0 I 2
关于python - 每次求和通过某个阈值时如何重新采样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57580911/