3 回答

TA貢獻1812條經(jīng)驗 獲得超5個贊
你可以這樣做extract:
df =pd.DataFrame({'text':["Who would have thought this would be so 4347009 difficult",
"24 is me"]})
df['new_col'] = df['text'].str.extract(r'(\d+)')
text new_col
0 Who would have thought this would be so 434700... 4347009
1 24 is me

TA貢獻1895條經(jīng)驗 獲得超7個贊
您可以將提取與數(shù)字的捕獲組一起使用(\d+):
import pandas as pd
data = ["AU/4347001",
"Who would have thought this would be so 4347009 difficult",
"Another with a no numbers",
"131242143"]
df = pd.DataFrame(data=data, columns=['txt'])
result = df.assign(res=df.txt.str.extract('(\d+)')).fillna('')
print(result)
輸出
txt res
0 AU/4347001 4347001
1 Who would have thought this would be so 434700... 4347009
2 Another with a no numbers
3 131242143 131242143
注意,在上面的例子中,使用fillna來填充那些沒有找到數(shù)字組的列,在這種情況下,用空字符串填充。

TA貢獻2003條經(jīng)驗 獲得超2個贊
這是我們的測試 DataFrame:
### Create an example Pandas Dataframe
df = pd.DataFrame(data=['something123', 'some456thing', '789somthing',
'Lots of numbers 82849585 make a long sentence'], columns = ['strings'])
### Create a function for identifying, joining and then turning the string to an integer
def get_numbers(string):
return int(''.join([s for s in string if s.isdigit()]))
### Now lets apply the get_numbers function to the strings column
df.loc[:,'strings_wo_numbers'] = df.loc[:,'strings']apply(get_numbers)
注意:這將連接字符串中的所有數(shù)字,即“10 個橄欖和 5 個蘋果”將變成 105 而不是 10、5。
添加回答
舉報