Sto provando a scrivere del codice che divide una stringa in una colonna dataframe con una virgola (quindi diventa una lista) e rimuove una determinata stringa dall'elenco se presente. dopo aver rimosso la stringa indesiderata voglio unirmi nuovamente agli elementi della lista alla virgola. Il mio dataframe assomiglia a questo:Come rimuovere il valore di stringa dalla colonna in pda dataframe
df:
Column1 Column2
0 a a,b,c
1 y b,n,m
2 d n,n,m
3 d b,b,x
Quindi, in pratica il mio obiettivo è quello di rimuovere tutti i valori di b da column2 in modo che ottengo:
df:
Column1 Column2
0 a a,c
1 y n,m
2 d n,n,m
3 d x
Il codice che ho scritto è la seguente:
df=df['Column2'].apply(lambda x: x.split(','))
def exclude_b(df):
for index, liste in df['column2].iteritems():
if 'b' in liste:
liste.remove('b')
return liste
else:
return liste
La prima riga divide tutti i valori nella colonna in un elenco separato da virgole. con la funzione ora ho provato a scorrere tutte le liste e rimuovere la b se presente, se non è presente restituire la lista così com'è. Se stampo 'liste' alla fine restituisce solo la prima riga di Column2, ma non gli altri. Che cosa sto facendo di sbagliato? E ci sarebbe un modo per implementare la mia condizione if in una funzione lambda?
ne dite di applicare una funzione che restituisce Column2 senza la stringa indesiderato? –