我有一个看起来像这样的数据框:
print(df)
y x
-2 -1 0 -2 -1 0
time
1544301206 51966.876 5761.886 3818.735 9883 9885 9916
1544301269 50900.195 50038.890 2781.000 9892 9893 9894
1544301329 5359.255 3326.751 2958.000 9888 9912 9914
让我们进行第一行,我解释它的含义。从右边开始。
-df['x', 0] < x
(9916 ..)的y均为0
-df['x', -1] < x <= df['x', 0]
的所有y(9885..9916]-df['y', 0]
(3818.735)
-df['x', -2] < x <= df['x', -1]
的所有y(9883..9885]-df['y', -1]
(5761.886)
-x < df['x', -2]
(..9883]的所有y为df['y', -2]
我希望能够获得一个未缩小的数据框,其中每个x是显式列。 y是值。
stepped_df = unminify(df, interval=[9890, 9895])
print(stepped_df)
9890 9891 9892 9893 9894 9895
time
1544301206 3818.74 3818.74 3818.74 3818.74 3818.74 3818.74
1544301269 50900.2 50900.2 50900.2 50038.9 2781 0
1544301329 3326.75 3326.75 3326.75 3326.75 3326.75 3326.75
我已经有了一个for循环的肮脏实现,正在寻找更好的解决方案。