Python 如何使用if条件循环遍历数据帧列表并指定列

Python 如何使用if条件循环遍历数据帧列表并指定列,python,pandas,dataframe,if-statement,contains,Python,Pandas,Dataframe,If Statement,Contains,我有一个数据帧列表,我想循环查看并检查特定字符串是否位于id列中。如果是,则获取该行的索引,并为该索引下的每一行指定一个新列和名称yes。如果id列在该列中不存在,则跳过该数据帧并分配另一个条件。我的示例代码如下: sample_df_2 = pd.DataFrame(data={ 'id': ['A', 'B', 'C','G','D','E'], 'n' : [ 1, 2, 3, 5, 5, 9], 'v' : [ 10, 13, 8, 8, 4 , 3]

我有一个数据帧列表,我想循环查看并检查特定字符串是否位于
id
列中。如果是,则获取该行的索引,并为该索引下的每一行指定一个新列和名称
yes
。如果
id
列在该列中不存在,则跳过该数据帧并分配另一个条件。我的示例代码如下:

sample_df_2 = pd.DataFrame(data={
  'id': ['A', 'B', 'C','G','D','E'],
  'n' : [  1,   2,   3, 5,  5,  9],
  'v' : [ 10,  13,   8, 8,  4 ,  3],
  'z' : [5,    3,    6, 9,  9,   8]
})

sample_df_1 = pd.DataFrame(data={
  'id': ['L', 'K', 'C','G','D','E'],
  'n' : [  1,   2,   3, 5,  5,  9],
  'v' : [ 10,  13,   8, 8,  4 ,  3],
  'z' : [5,    3,    6, 9,  9,   8]
})

def assign_new_column(data_frame):
    if data_frame['id'].str.contains('A','C').any():
        index_A=data_frame[data_frame['id']=='A'].index.tolist()
        index_C=data_frame[data_frame['id']=='C'].index.tolist()

        data_frame['Yes']=np.select([data_frame.index<=index_A],['Yeaaap'])
        data_frame['No']=np.select([data_frame.index<=index_C],['Yeaaap'])

    else:
        index_G=data_frame[data_frame['id']=='G'].index.tolist()
        index_D=data_frame[data_frame['id']=='D'].index.tolist()

        data_frame['Yes']=np.select([data_frame.index<=index_G],['Noop'])
        data_frame['No']=np.select([data_frame.index<=index_D],['supp'])

    return data_frame

index=sample_df[sample_df['id']=='A'].index.tolist()

df=[]
for i in range(len(df_list)):
    df.append(assign_new_column(df_list[i]))
pd.concat(df)
但这是不正确的,因为它有点覆盖字符串


有谁能帮我以有效的方式解决这个问题吗?

请发布您的预期结果
    id  n   v   z   Yes No
0   A   1   10  5   Yeaaap  Yeaaap
1   B   2   13  3   0   Yeaaap
2   C   3   8   6   0   Yeaaap
3   G   5   8   9   0   0
4   D   5   4   9   0   0
5   E   9   3   8   0   0
0   L   1   10  5   Noop    supp
1   K   2   13  3   Noop    supp
2   C   3   8   6   Noop    supp
3   G   5   8   9   Noop    supp
4   D   5   4   9   0   supp
5   E   9   3   8   0   0