Pandas:如果当前列包含列表中的任何字符串,则使用值创建新列

时间:2018-03-14 22:12:05

标签: python pandas dataframe

我有以下示例数据帧。 “PN”是一个字符串列。

   ID   PN
    A   1111
    B   220
    C   4422
    D   1234
    E   9890
    F   1323

我想要实现的逻辑是:如果PN中的字符串值在列表['1111','1234','2222','3333','4422']中,则创建一个名为“ GCS“并将相应的单元格值标记为”PGC“。否则,将单元格标记为“全部”。

以下是我要找的所需表格。

ID  PN      GCS
A   1111    PGC
B   220     ALL
C   4422    PGC
D   1234    PGC
E   9890    ALL
F   1323    ALL

以下是我尝试的代码:

ME_List = ['1111', '1234', '2222', '3333', '4422']

for i in ME_LIST: 
    df_EVENT5_22['GCS'] = np.where(df_EVENT5_22['PN'].str.contains([i]), 'PGC', 'All')

这是错误:

NameError: name 'ME_LIST' is not defined

1 个答案:

答案 0 :(得分:0)

您是否阅读过该错误?您的变量名称未在for循环中正确写入。 ME_List vs ME_LIST