python - 将 Dask 系列编入索引可归还 Dask 系列
问题描述
我有一个 Dask 系列的 Dask 数据框。
我想索引到这个系列以获取 dask 数据帧以供后续工作。
然而loc[0]
,在另一个 dask 系列中使用结果。使用to_frame
也不起作用,因为结果是“Dask 系列 Dask 数据帧的 Dask 数据帧”。
这是一个使用 Dask 系列 Pandas 数据帧的最小示例(不完全相同,但说明了问题):
import pandas as pd
import dask.dataframe as dd
pdf1 = pd.DataFrame({'a': [1,2,3,4], 'b': [4,3,2,1]})
pdf2 = pd.DataFrame({'a': [4,3,2,1], 'b': [1,2,3,4]})
ps = pd.Series([pdf1, pdf2])
ds = dd.from_pandas(ps, npartitions=1)
print(type(ds.loc[0])) # still dask series
print(type(ds.loc[1])) # still dask series
print(ds.compute().loc[0]) # this is a pandas dataframe
print(ds.loc[0].compute()) # this is a pandas series
print(ds.loc[0].compute().loc[0]) # need to index into the singleton series to get back the dataframe
似乎一旦对象变成了一个 dask 系列,所有后续的组合器都将它保持为一个 dask 系列 until compute
,它返回一个“单例”熊猫系列。
反正有没有告诉 dask 将索引对象视为我期望的类型?
解决方案
我怀疑这样做的原因是 Dask 不知道只有一个值为 0 的索引值。原则上可能有很多行的索引值为 0,因此一般的输出类型.loc
是一系列。
当我们有独特的价值指数时,这违背了我们的直觉,这可能会导致你似乎遇到过的那种挫败感。
推荐阅读
- dynamic - 电源查询 - 动态参数不起作用
- c++ - 使用模板获取可以返回多种类型的方法
- apache-spark - AWS Glue 上的 Spark SQL:pyspark.sql.utils.AnalysisException
- mysql - 使用 shell 脚本从一行中获取多个变量
- django - 基于 Django Rest Framework 的序列化器构建 React 表单
- swift - RxSwift 更新身份验证令牌
- javascript - 悬停按钮时如何停止所有站点动画
- ruby-on-rails - 无法使用 wicked_pdf 和 rails 5 在 pdf 文件中加载 highcharts
- c - SDL2:架构 x86_64 / MAC 的未定义符号
- java - 使用BufferedWriter时的程序设计,我会重复打开和关闭文件吗?