Python 3.x 有条件地更新不适用于字符串列的内容

Python 3.x 有条件地更新不适用于字符串列的内容,python-3.x,pandas,numpy,Python 3.x,Pandas,Numpy,我使用的是Python 3.6,所有的包都是最新的 我有一个包含5行的df,它是根据Oracle数据库的SQL语句生成的。其中一列由返回字符串列的listag()oracle函数生成 我需要根据Listag列的内容更新另一列,但我无法更新 这是我所做的,但它总是将其设置为“N” listagg_res['H_FLAG']=np.where('H'在listagg_res['PGM_LIST'],'Y','N') 及 listagg_res['H_FLAG']=np.where(np.isin(l

我使用的是Python 3.6,所有的包都是最新的

我有一个包含5行的df,它是根据Oracle数据库的SQL语句生成的。其中一列由返回字符串列的
listag()
oracle函数生成

我需要根据Listag列的内容更新另一列,但我无法更新

这是我所做的,但它总是将其设置为“N”

listagg_res['H_FLAG']=np.where('H'在listagg_res['PGM_LIST'],'Y','N')

listagg_res['H_FLAG']=np.where(np.isin(listagg_res['PGM_LIST'],'H'),'Y','N')

listagg_res['H_FLAG']=np.where(listagg_res['PGM_LIST'].isin(['H']),'Y','N')

有人能指出我遗漏了什么吗?谢谢

编辑:添加了df.isin()尝试。仍然不起作用,将其全部设置为“N”

编辑:这里是我的数据和H_标志的示例,因为它应该被设置

+-------------+--------+
|   PGM_ID    | H_FLAG |
+-------------+--------+
| 'H,Z,T,G,H' | Y      |
| 'Z,T,G'     | N      |
| 'Z'         | N      |
| 'H'         | Y      |
+-------------+--------+
你能试试吗

listagg_res['H_FLAG'] = np.where(listagg_res['PGM_LIST'].str.contains('H'), 'Y', 'N' )

不好,至少这次通过了。我试图使用df.isin()方法,但没有意识到我的“好值”也需要在列表中。不过,这还是不起作用。@Apc0243发布一些示例数据怎么样?只是添加了一些,但非常简单。我不敢相信这行不通。根据df.info()方法,listagg()生成的列是一个“object”列,当我选择单个单元格时,它们的类型是string@Apc0243那是str。contains@Apc0243快乐编码:-)