Ich habe einen Datenrahmen, wo ein Spaltennamen enthält, und einen Teil davon in Klammern ist, etwa so:Ersetzen Pandas Spaltenwert mit dem Wert in Klammern, mit Komma vor
Names
Apple (juicy)
Banana (crunchy)
Grape (sour)
Ich will es ändern zu das folgende Format:
Names
Apple, juicy
Banana, crunchy
Grape, sour
Wie dies erreicht werden kann Pandas und regex? Ich habe dies versucht:
df['Names'] = df1['Names'].str.replace(r"\s+\(.*\)",", " + r"\(.*\)")
aber das Problem ist in dem letzten Bit (r „(*).“), Wo ich weiß nicht, wie erfolgreich zu übertragen, was auch immer in der Klammer ist. Mit dem obigen Code bekomme ich das:
Warum Regex? Das verursacht Ihnen Probleme und Sie brauchen es nicht. '.replace ('(', ',') .replace (')', '')' ist einfacher zu schreiben und zu verstehen und kommuniziert Ihre Absicht deutlicher. – Goyo
Hm, ich bekomme diesen Fehler: sre_constants.error: missing), unterminiertes Submuster an Position 1 – ilee
Sieht so aus, als müssten Sie einige Zeichen im Datenframe-Accessor umgehen: 'df ['Names']. Str.replace ('\ (' , ',') .str.replace (')', '') '. Oder benutzen Sie 'apply' wie in einer Anfrage vorgeschlagen. – Goyo