当另一列值等于lis中的某个值时,更改列的值

2024-09-28 01:29:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含多个列的数据集。但对于这个问题,只有两个是重要的。列体和列Valid,第一个是twitter中的注释,第二个是ML算法的输出,该算法确定它对我正在处理的项目是否有效。你知道吗

问题是,我有一个从身体专栏推文被错误预测的名单。我要做的是,如果body列与错误的\one(这是一个列表)中的任何值重合,则更改Valid列上的值。你知道吗

所以考虑到错误的数据是一个列表,而原始数据是我的数据帧。你知道吗

我试过这个:

raw_data = pd.DataFrame(
{
   "SYS-ID":[1,2,3,4,5,6,7,8],
    "BODY":["LOL1","LOL","lol","a","b","C","hey","ho"],
    "VALID":[True,True,True,True,True,True,True,True]
})
wrong_one = ["LOL1,LOL"]

raw_data[raw_data['BODY'].isin(wrong_one), 'Valid'] = False

OUT:TypeError:“Series”对象是可变的,因此不能对它们进行散列


Tags: 数据算法true列表dataraw错误body
1条回答
网友
1楼 · 发布于 2024-09-28 01:29:28

有几个错误:

  • wrong_one是一个字符串的列表,您需要多个字符串的列表。你知道吗
  • ^{}notpd.DataFrame.__getitem__(其中raw_data[]是语法糖)是行和列索引器设置所必需的。你知道吗

因此您可以使用:

wrong_one = ['LOL1', 'LOL']

raw_data.loc[raw_data['BODY'].isin(wrong_one), 'VALID'] = False

另见官方文件中的Indexing and Selecting Data。你知道吗

相关问题 更多 >

    热门问题