为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

牧羊人nacy 2023-12-29 15:35:10
我喜欢将列分成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')
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

我相信您需要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      strings1

0           cat 123    123          cat           cat

1            34 dog     34          dog           dog

2           bird 93     93         bird          bird

3    dolphin dof 8       8  dolphin dof   dolphin dof

4       lion cat 76     76     lion cat      lion cat

5  tiger 22 animal      22        tiger  tiger animal


查看完整回答
反对 回复 2023-12-29
  • 1 回答
  • 0 关注
  • 92 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信