Ich habe 2 Datenrahmen. Unten ist, wie Daten wiestr.replace unsymmetrische Klammerfehler in Pandas Datenrahmen
für jeden keyword
in current_title
Ich suche aussehen und wenn ich finde es gegen die entsprechenden keywordLength
im Find
am ersetzen Datenrahmen. Unten ist mein Code.
import pandas as pd
df_find = pd.read_csv(input_path_find)
df_replace = pd.read_csv(input_path_replace)
#replace
for i in range(df_replace.shape[0]):
df_find.current_title=df_find.current_title.str.replace(df_replace.keyword.loc[i],df_replace.keywordLength.loc[i],case=False)
jedoch, wenn ich den Code ausführen, ich bin unten Fehler immer
error Traceback (most recent call last)
<ipython-input-13-134bbf2a1cb4> in <module>()
1 for i in range(df_replace.shape[0]):
----> 2 df_find.current_title=df_find.current_title.str.replace(df_replace.keyword.loc[i],df_replace.keywordLength.loc[i],case=False)
c:\python27\lib\site-packages\pandas\core\strings.pyc in replace(self, pat, repl, n, case, flags)
1504 def replace(self, pat, repl, n=-1, case=True, flags=0):
1505 result = str_replace(self._data, pat, repl, n=n, case=case,
-> 1506 flags=flags)
1507 return self._wrap_result(result)
1508
c:\python27\lib\site-packages\pandas\core\strings.pyc in str_replace(arr, pat, repl, n, case, flags)
326 if not case:
327 flags |= re.IGNORECASE
--> 328 regex = re.compile(pat, flags=flags)
329 n = n if n >= 0 else 0
330
c:\python27\lib\re.pyc in compile(pattern, flags)
192 def compile(pattern, flags=0):
193 "Compile a regular expression pattern, returning a pattern object."
--> 194 return _compile(pattern, flags)
195
196 def purge():
c:\python27\lib\re.pyc in _compile(*key)
249 p = sre_compile.compile(pattern, flags)
250 except error, v:
--> 251 raise error, v # invalid expression
252 if not bypass_cache:
253 if len(_cache) >= _MAXCACHE:
error: unbalanced parenthesis
Jede Hilfe?
Edit: Fehler erscheint, wenn str(df_replace.keywordLength.loc[i])
Werte hat eine der (*)+[\
Sonderzeichen
Was ist in 'df_replace.keywordLength.loc [i]'? –
Es ist in der Tabelle Ersetzen. zweite Spalte. Es hat die Länge des Textkorpus von der vorherigen Spalte. Zahlen, um genau zu sein – Enthusiast
So war ich nicht in der Lage, den Fehler ohne Quelldaten zu duplizieren, aber da es '.str.replace' ist und sie Zahlen sind, haben Sie versucht' str (df_replace.keywordLength.loc [i ]) 'für Ihren Wiederbeschaffungswert? Oder '.replace', ohne' .str'? – EFT