我只是尝试返回一个系列的最小值索引(它只来自Dask Dataframe的一列),然后使用该索引访问同一Dataframe的不同列中的相应值。 (即相同索引处的值。)我也在这个过程中做一些中间数学运算。
我使用以下代码:
start_time = Dataframe['time'].sub(c1).pow(2).idxmin()
end_time = Dataframe['time'].sub(c2).pow(2).idxmin()
#Now pull out data from a different column in Dataframe using start_time and end_time
data = Dataframe['current'].loc[start_time:end_Time]
但是我一直收到以下错误:
pandas.core.indexing.IndexingError: Too many indexers
我不知道这意味着什么,但我注意到的另一件事是我不知道idxmin()
返回的是什么类型的值。这对我来说是一个完全神秘的对象。当我尝试打印出start_time
或end_time
的值时,我得到的是:
start_time: dd.Scalar<series-..., dtype=int32>
end_time: dd.Scalar<series-..., dtype=int32>
我找不到关于这些对象的任何具体信息(虽然我已经确定它们是“Scalar”对象),但我找不到任何关于“标量”对象存在哪些方法或属性的文档。
这是问题的症结所在,因为idxmin()
似乎返回的数据类型无法用于在Dask或pandas中进行索引....真的很有用。
我也试过
data = Dataframe.loc[start_time:end_time,'current']
这没有给出错误,但执行此操作后data
仍为空。
有人请我直截了当。
感谢。
答案 0 :(得分:0)
dd.Scalar
是标量的标准延迟值。如果你要计算一个系列的总和或平均值,你会得到一个类似的对象。
您可以尝试调用.compute()
方法来查看其具体值。