堆栈上有一个类似的问题,但从未得到回答:When using cut in a pandas dataframe to bin it, why is the binning not properly done?
我有一个数据集,我需要整合曲线下的区域,但不是一次性整合曲线下的整个区域,而是以5m的指定间隔整合部分区域。即曲线下0-5m、5-10m、10-15m等的区域
但是,我的代码似乎跳过了区间的最后一点和下一个区间的第一点之间的区域
Here is a subset of my dataframe:
SITE XSNO XDIST VERT SUB YEAR X Z SOURCE EW \
6749 LOL LOL006 30.0 -159.0 LI 1978.0 0.30 0.00 JF False
6750 LOL LOL006 98.0 -155.0 LI 1978.0 0.98 0.04 JF False
6751 LOL LOL006 148.0 -155.0 OD 1978.0 1.48 0.04 JF False
6752 LOL LOL006 196.0 -133.0 OD 1978.0 1.96 0.26 JF False
6753 LOL LOL006 222.0 -92.0 OD 1978.0 2.22 0.67 JF False
6754 LOL LOL006 242.0 -191.0 OD 1978.0 2.42 -0.32 JF False
6755 LOL LOL006 320.0 -246.0 LI 1978.0 3.20 -0.87 JF False
6756 LOL LOL006 383.0 -256.0 LI 1978.0 3.83 -0.97 JF False
6757 LOL LOL006 478.0 -262.0 LI 1978.0 4.78 -1.03 JF False
6758 LOL LOL006 558.0 -269.0 LI 1978.0 5.58 -1.10 JF False
6759 LOL LOL006 610.0 -271.0 LI 1978.0 6.10 -1.12 JF False
6760 LOL LOL006 670.0 -264.0 LI 1978.0 6.70 -1.05 JF False
6761 LOL LOL006 698.0 -308.0 BR 1978.0 6.98 -1.49 JF False
max_x = max (df.X)
interval_range = pd.interval_range(start = 0, end = max_x + 5, freq=5, closed = 'left')
df['bins'] = pd.cut(df.X, bins = interval_range)
area = df.groupby(['bins', 'YEAR']).apply(lambda i: integrate.simps(i.Y, x = i.X))
对于数据帧的这个子集,我的代码跳过了X=4.78和X=5.58之间的区域。我需要找到一种方法将其融入到我的结果中,我在概念化上有困难
目前没有回答
相关问题 更多 >
编程相关推荐