将数字和字符串拆分到 pandas 上的不同列

我喜欢将列分成str和 数字。

data={"name&numb":["cat 123","34 dog","bird 93","dolphin dof 8 ","lion cat 76","tiger 22 animal "]}
df=pd.DataFrame.from_dict(data)

我这样做了所以分开了数字

df["number"]=df["name&numb"].str.extract('(\d+)')

现在我想再制作一列,所以我只得到字符串,我不知道它是否会影响,但在原始数据中,而不是英语

就像是:

 df["strings"]=df["name&numb"].str.extract('str')


牧羊人nacy
浏览 84回答 1
1回答

紫衣仙女

我相信您需要Series.str.extract使用\Dfor 非数字数据来Series.str.strip删除尾随空格:df["number"]=df["name&numb"].str.extract('(\d+)')df["strings"] = df["name&numb"].str.extract('(\D+)', expand=False).str.strip()如果需要所有字符串,一个想法是使用:f = lambda x: ' '.join(y for y in x.split() if not y.isdigit())df["strings1"] = df["name&numb"].apply(f)print (df)          name&numb number      strings      strings10           cat 123    123          cat           cat1            34 dog     34          dog           dog2           bird 93     93         bird          bird3    dolphin dof 8       8  dolphin dof   dolphin dof4       lion cat 76     76     lion cat      lion cat5  tiger 22 animal      22        tiger  tiger animal
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python