我使用Python 3.6并将所有软件包更新。
我有一个df,其中包含5个针对Oracle数据库的SQL语句生成的行。其中一列由listagg()
oracle函数生成,该函数返回一个字符串列。
我需要根据listagg列的内容更新另一列,而我无法更新。
以下是我所做的,但它始终将其设置为N' N' N' N'
listagg_res['H_FLAG'] = np.where('H' in 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' N' N' N'而不管。
编辑:这是我的数据和H_FLAG的一个示例,因为它应该设置
+-------------+--------+
| PGM_ID | H_FLAG |
+-------------+--------+
| 'H,Z,T,G,H' | Y |
| 'Z,T,G' | N |
| 'Z' | N |
| 'H' | Y |
+-------------+--------+
答案 0 :(得分:1)
listagg_res['H_FLAG'] = np.where(listagg_res['PGM_LIST'].str.contains('H'), 'Y', 'N' )