1 回答

TA貢獻1839條經驗 獲得超15個贊
我相信您需要Series.str.extract
使用\D
for 非數字數據來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
添加回答
舉報