【发布时间】:2020-11-19 22:16:42
【问题描述】:
我目前的解决方案如下:
slices = []
for idx in range(0, dataset.size):
slice = dataset[idx:idx+4]
if len(slice) < 4:
break;
# ---> check = []
for val in slice[column].values:
delta_pos = round(slice[column].iloc[0] * 0.0005, 2)
delta_neg = round(slice[column].iloc[0] * 0.0005, 2)
check.append(delta_neg <= round(val, 2) - round(slice[column].iloc[0], 2) <= delta_pos)
if(all(v == True for v in check)):
slices.append(slice) # <----
return slices
在这里,我检查 Pandas Dataframe 中每个可能的四项切片是否满足我的要求。如果是,则将切片添加到单独的 slices 数组中。
但在我看来,这段代码太难读了。还有更可靠、更简单的解决方案吗?
这是数据集的一小部分摘录:
VALUE
194.7200000
194.7600000
195.0500000
194.9500000
195.0800000
195.1700000
195.0700000
195.2200000
195.2000000
195.2100000
195.2500000
195.1600000
194.6200000
194.6400000
194.9000000
194.8200000
194.8000000
194.6400000
194.7800000
194.6600000
194.7000000
194.6300000
...
【问题讨论】:
-
是的,我只是想让我想简化的代码变成粗体
-
啊,好的。粗体在代码环境中不起作用,我通常添加
# <----或 smth 来标记位置:) -
能否分享一个
dataset的小例子,以便我们自己运行代码? -
你希望我如何分享一个例子?您可以使用 dropmefiles 服务吗?
-
只需打印并分享
dataset.iloc[:10, :]即可获得包含所有列的前 10 行
标签: python pandas dataframe slice