TypeError:<lambda>()缺少1个必需的位置参数:将data.head()用于dask数据帧时为'df'

时间:2019-04-16 14:25:08

标签: python dask

我正在尝试执行data.head()以查看dask数据框并出现以下错误: TypeError: <lambda>() missing 1 required positional argument: 'df'

在使用map_partitions(在下面的代码中显示)执行lambda函数(尝试将列添加到数据框)后,特别会发生此错误。我可以看到这一行将新列添加到dask数据框结构中,但是data.head()失败。

import dask.dataframe as dd
from selectolax.parser import HTMLParser

data['text'] = dd.map_partitions(
    lambda df : df.apply(
        lambda x : HTMLParser(x['text']).body.text(separator=' '
            ).replace('\n',' '),axis=1),
    meta='str')
data.head()

在我的笔记本中data.head()一直有效,直到执行此行,所以我怀疑执行map_partitions()的行中发生了错误。

1 个答案:

答案 0 :(得分:0)

您很可能想要IHttpContextAccessor,即数据框上的方法而不是您使用的函数。

另外,看起来很像您可以在此处使用简单的data.map_partitions

map

(尽管我可能会误解您的代码的作用)