我正在清理数据帧,我想检查数据帧中的单词列表是否有任何值。如果存在,则该值应替换为NA值。例如
我的数据帧就像。在
p['title']
1 Forest
2 [VIDEO_TITLE]
3 [VIDEO_TITLE]
4 [VIDEO_TITLE]
5 [${title}url=${videourl}]
p.dtypes
title object
dtype: object
以及
^{pr2}$由于第2、3、4、5行中有c中的单词,所以我希望用NA值替换它。在
我正在尝试以下方法
p['title'].replace('|'.join(c),np.NAN,regex=True).fillna('NA')
这个程序运行正常,但是我得到的输入和输出是一样的。根本没有变化。在
我的下一个尝试是
p['title'].apply(lambda x: 'NA' if any(s in x for s in c) else x)
这是在抛出一个错误
TypeError: argument of type 'float' is not iterable
我正在尝试其他几件事,但没有成功。我不知道我犯了什么错误。在
我的理想输出是
p['title']
1 Forest
2 NA
3 NA
4 NA
5 NA
有谁能帮我解决这个问题吗?在
您可以
loc
将它们设置为'NA'
。由于您的值有时在列表中,因此首先需要从列表中提取它们。第二行从列表中提取第一个字符串(如果它在列表中)。第三行检查是否匹配。在根据您正在执行的操作,您可能需要考虑将值设置为
numpy.nan
,而不是字符串'NA'
。这是pandas处理空值的常用方法,已经有很多功能围绕这一点构建。在相关问题 更多 >
编程相关推荐