python - SQL 风格在 Dask Series 或 DataFrame 列上展开
问题描述
我有一个 Dask 系列,其中包含一个带有值列表的列。我想执行一个 SQL 风格的分解来为每个索引值和相应的列表元素创建一个新行。对于这个特定问题,列表的长度都相同。
单行示例:
索引 列
123 [value1, value2, value3]
期望的转变:
索引 列
123 value1
123 value2
123 value3
任何有关如何实现这一目标的建议将不胜感激。
解决方案
在熊猫数据框上,这看起来像
df.column.apply(pd.Series, 1).stack().reset_index(level=1, drop=True)
要对 Dask 数据框执行此操作,您需要使用map_partitions对数据的每个分区执行完全相同的操作:
def func(df):
return df.column.apply(pd.Series, 1).stack().reset_index(level=1, drop=True)
df.map_partitions(func)
推荐阅读
- python - ResultSet 对象没有属性“文本”。您可能将项目列表视为单个项目。
- rxjs - 可从回调观察到,其中回调不是错误优先的
- r - 在 TidyGraph 中计算 Everett-Valente 经纪分数
- google-app-engine - 由于 MarkupSafe,gcloud 应用部署失败
- .net - .Net WFP 用户可安装应用程序,哪个数据库可以在没有数据库引擎的情况下工作?
- python - 使用 pathos ModuleNotFoundError 进行多处理:没有名为 pathos.helpers.mp 的模块
- docker - 除非重新启动 Peer,否则 Hyperledger Composer 无法更新
- angular - 使用角度在剑道树视图中附加自定义节点
- java - 使用 ExoPlayer 2.8 播放播放列表中的特定文件
- react-native - redux-observable 您在预期流的地方提供了“未定义”