如何在熊猫中做到这一点:
我在单个文本列上有一个函数 extract_text_features
,返回多个输出列。具体来说,该函数返回 6 个值。
该函数有效,但是似乎没有任何正确的返回类型(pandas DataFrame/numpy 数组/Python 列表),因此可以正确分配输出 df.ix[: ,10:16] = df.textcol.map(extract_text_features)
所以我想我需要回到迭代 df.iterrows()
,按照 这个?
更新:迭代 df.iterrows()
至少慢 20 倍,所以我放弃并将函数拆分为六个不同的 .map(lambda ...)
调用。
更新 2:在可用性 df.apply
得到改进或 df.assign()
被 添加到 v0.16 之前,这个问题在 v0.11.0 左右被问到。因此,很多问题和答案都不太相关。
原文由 smci 发布,翻译遵循 CC BY-SA 4.0 许可协议
根据 user1827356 的回答,您可以使用
df.merge
一次性完成作业:编辑: 请注意巨大的内存消耗和低速: https ://ys-l.github.io/posts/2015/08/28/how-not-to-use-pandas-apply/ !