Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python列表上使用apply时出错_Python_Regex_List_Dataframe - Fatal编程技术网

在python列表上使用apply时出错

在python列表上使用apply时出错,python,regex,list,dataframe,Python,Regex,List,Dataframe,我有一个数据框,其中txt列包含一个列表。我想使用函数clean_text()清理txt列 我的解决方案: 但我得到了以下错误: 错误 我不知道如何使用numpy。在这个问题中,在哪里。根据对您问题的修改和评论中的讨论,我认为您需要使用以下行: df['txt'] = df['txt'].apply(lambda x: [clean_text(z) for z in x]) 在这种方法中,apply与lambda一起使用,以循环txt系列的每个元素,而一个简单的for循环(使用Python的列

我有一个数据框,其中
txt
列包含一个列表。我想使用函数clean_text()清理
txt

我的解决方案:

但我得到了以下错误: 错误


我不知道如何使用
numpy。在这个问题中,
在哪里。

根据对您问题的修改和评论中的讨论,我认为您需要使用以下行:

df['txt'] = df['txt'].apply(lambda x: [clean_text(z) for z in x])
在这种方法中,
apply
lambda
一起使用,以循环
txt
系列的每个元素,而一个简单的for循环(使用Python的列表理解表示)用于迭代
txt
子列表中的每个项目

我已使用以下值对
数据
测试了该代码段:

data = {
    'value': [
        'abc.txt',
        'cda.txt',
    ],
    'txt':[
        [
            '2019/01/31-11:56:23.288258 1886     7F0ED4CDC704     asfasnfs: remove datepart',
        ],
        [
            '2019/02/01-11:56:23.288258 1886     7F0ED4CDC704     asfasnfs: remove datepart',
        ],
    ]
}
下面是控制台输出的一个片段,显示了转换前后的数据帧:

>>> df

     value                                                txt
0  abc.txt  [2019/01/31-11:56:23.288258 1886     7F0ED4CDC...
1  cda.txt  [2019/02/01-11:56:23.288258 1886     7F0ED4CDC...

>>> df['txt'] = df['txt'].apply(lambda x: [clean_text(z) for z in x])

>>> df

     value                         txt
0  abc.txt  [asfasnfs remove datepart]
1  cda.txt  [asfasnfs remove datepart]
>>> 

不一样。我如何使用
np.where
在我的例子中?我认为你在这个例子中的数据集是不完整的?使用为
数据提供的值运行代码时,这对我来说运行正常,不会产生属性错误。@Spenced,我更新了问题,基本上txt列包含字符串列表。啊,这有点道理,尽管上面的代码显然格式不正确,由于粘贴了
df
at的输出。无论如何,我不确定你的最终目标是什么,但这看起来确实运行并执行了替换
df['txt']。apply(lambda x:[clean_text(z)for z in x])
@user15051990我永远不会理解为什么人们会接受答案,但也不会投票给他们。这当然是完全可选的,但不需要任何费用。(目前唯一的投票是我的)@uhoh,lol我不能假装理解,但是哦,好吧。很高兴能帮助别人!
df['txt'] = df['txt'].apply(lambda x: [clean_text(z) for z in x])
data = {
    'value': [
        'abc.txt',
        'cda.txt',
    ],
    'txt':[
        [
            '2019/01/31-11:56:23.288258 1886     7F0ED4CDC704     asfasnfs: remove datepart',
        ],
        [
            '2019/02/01-11:56:23.288258 1886     7F0ED4CDC704     asfasnfs: remove datepart',
        ],
    ]
}
>>> df

     value                                                txt
0  abc.txt  [2019/01/31-11:56:23.288258 1886     7F0ED4CDC...
1  cda.txt  [2019/02/01-11:56:23.288258 1886     7F0ED4CDC...

>>> df['txt'] = df['txt'].apply(lambda x: [clean_text(z) for z in x])

>>> df

     value                         txt
0  abc.txt  [asfasnfs remove datepart]
1  cda.txt  [asfasnfs remove datepart]
>>>