第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

返回 Pandas Dataframe 中字符串中第一個(gè)數(shù)字/字母的索引/位置

返回 Pandas Dataframe 中字符串中第一個(gè)數(shù)字/字母的索引/位置

UYOU 2023-06-20 16:27:45
我有一個(gè)包含多個(gè)列的數(shù)據(jù)框。其中之一是df['col1']由字母、特殊字符(. 或 _)和數(shù)字組成的字符串值。我想創(chuàng)建一個(gè)新列,返回索引 + 1 或第一個(gè)數(shù)字或 alpha 的位置。我知道這不起作用,但類似于:df['new_col'] = df['col1'].apply(lambda x: re.search(r'\d', str(x))).str.startswith()以便col1 = abc12 returns 4, 33zxy returns 1, hi_world2 returns 9 依此類推(如果是第一個(gè)數(shù)字的位置)。我也嘗試使用 find、next 和 filter,但它們沒(méi)有用。df['new_col'] = df['col1'].str.find(next(filter(str.isalpha, df['col1']))) + 1任何幫助,將不勝感激!
查看完整描述

1 回答

?
千萬(wàn)里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊

您可以使用 re.search


import re

df['col1'].apply(lambda x: re.search('\d+', x).start()) + 1

你得到


0    4

1    1

2    9

編輯:如果沒(méi)有匹配項(xiàng),re.search().start() 將拋出屬性錯(cuò)誤。這需要在條件下處理。由于 Pandas 將 NaN 解釋為 float,因此結(jié)果位置將是 float 類型


df = pd.DataFrame({'col1':['abc12', '33zxy', 'hi_world2','abc']})


df['col1'].apply(lambda x: re.search('\d+', x).start() if re.search('\d+', x) else re.search('\d+', x)) + 1


0    4.0

1    1.0

2    9.0

3    NaN


查看完整回答
反對(duì) 回復(fù) 2023-06-20
  • 1 回答
  • 0 關(guān)注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)