string拆分在单个string上工作,但不是在pandas系列的string

我对Python和大pandas很新,有一个问题。 我有一系列需要编辑的45398个string。 我从一个Excel文件导入他们。

import pandas as pd import numpy as np import xlrd file_location = "#mypath/leistungen_2017.xlsx" workbook = xlrd.open_workbook(file_location) sheet = workbook.sheet_by_index(0)` df = pd.read_excel("leistungen_2017.xlsx") 

这里是前几行,就像例子。

 >>> df Leistungserbringer Anzahl Leistung Code Rechnungsnummer 0 Albert 1 15.0160 Vollständige Spirometrie und Resistanc... 1 8957 1 Albert 1 15.0200 CO-Diffusion, jede Methode 1 8957 2 Albert 1 15.0285 Messung ausgeatmetes Stickstoffmonoxid... 1 8957 3 Albert 1 AMC-30864 Spirometriefilter mit Mundstück 1 8957 4 Albert 1 5889797 RELVAR ELLIPTA Inh Plv 92mcg/22mcg 30 Dos 1 8957 5 Albert 1 00.0010 Konsultation, erste 5 Min. (Grundkonsu... 1 8957 

在第四列中,文字前面有一堆数字,我想在整个系列中删除它们。

我用单个string进行testing,它可以正常工作:

 >>> str("15.0200 CO-Diffusion, jede Methode".split(' ', 1)[1:]).strip('[]')` "'CO-Diffusion, jede Methode'" 

我试图把这个应用到整个系列中:

 for entry in df.Leistung: df.Leistung.replace({entry : str(entry.split(' ', 1)[1:]).strip('[]')}, inplace=True) 

df.Leistung的结果应该是这样的:

 0 Vollständige Spirometrie und Resistance (Plet... 1 CO-Diffusion, jede Methode 2 Messung ausgeatmetes Stickstoffmonoxid ({eNO}) 3 Spirometriefilter mit Mundstück 4 RELVAR ELLIPTA Inh Plv 92mcg/22mcg 30 Dos 5 Konsultation, erste 5 Min. (Grundkonsultation) 

相反,我收到这个:

 0 1 2 3 4 5 

一行给出这个:

 45384 'Dos\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'"\\\\\\\\\... 

我需要用同一列中的新系列更新旧系列。 我希望这是可以理解的,并提前感谢您发布任何帮助。

pandas不需要循环,它们都是vector化的。 您以后的replacefunction属于.str. 命名空间。 所以你需要做的::

 df.Leistung.str.replace(r'\d+', '')