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

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

僅識(shí)別數(shù)據(jù)框中列中的數(shù)值 - Python

僅識(shí)別數(shù)據(jù)框中列中的數(shù)值 - Python

肥皂起泡泡 2024-01-12 10:19:09
我想要一個(gè)單獨(dú)的列,如果“ID ”列包含所有數(shù)字值,則返回“是”;如果包含字母或字母數(shù)字值,則返回“否”。ID      Result3965      Yeswyq8      NoRO_123    NoCMD_      No2976      Yes
查看完整描述

3 回答

?
拉丁的傳說(shuō)

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

你可以pd.Series.str.isnumeric在這里使用。

df['Result'] = np.where(df['ID'].str.isnumeric(), 'YES', 'NO')


? ? ? ?ID Result

0? ? 3965? ? YES

1? ? wyq8? ? ?NO

2? RO_123? ? ?NO

3? ? CMD_? ? ?NO

4? ? 2976? ? YES

isnumeric使用它不能識(shí)別數(shù)字有一個(gè)警告float。


test = pd.Series(["9.0", "9"])

test.str.isnumeric()


0? ? False

1? ? ?True

dtype: bool

如果您嚴(yán)格標(biāo)記YESfor?intthen 使用isnumericelse,您可以pd.Series.str.fullmatch在此處使用(從版本 1.1.0 開(kāi)始)。

df['Result']?=?np.where(df['ID'].str.fullmatch(r"\d+|\d+\.\d+",?'YES',?'NO')

對(duì)于版本<1.1.0,您使用re.fullmatch

df['Result'] = np.where(df['ID'].str.isnumeric(), 'YES', 'NO')


? ? ? ?ID Result

0? ? 3965? ? YES

1? ? wyq8? ? ?NO

2? RO_123? ? ?NO

3? ? CMD_? ? ?NO

4? ? 2976? ? YES

isnumeric使用它不能識(shí)別數(shù)字有一個(gè)警告float。


test = pd.Series(["9.0", "9"])

test.str.isnumeric()


0? ? False

1? ? ?True

dtype: bool

或者我們可以使用pd.to_numeric布爾掩碼pd.Series.isna

m?=?pd.to_numeric(df['ID'],?errors='coerce').isna()
df['Result']?=?np.where(m,?'NO',?'YES')

如果errors參數(shù)設(shè)置為'coerce'無(wú)法轉(zhuǎn)換為數(shù)字的值,則值將設(shè)置為Nan。

test = pd.Series(['3965', 'wyq8', 'RO_123', 'CMD_', '2976'])

pd.to_numeric(test)


0? ? 3965.0

1? ? ? ?NaN

2? ? ? ?NaN

3? ? ? ?NaN

4? ? 2976.0

Name: ID, dtype: float64

或者您可以構(gòu)建自定義函數(shù)


def numeric(val):

? ? try:

? ? ? ? float(val)? ? ?# Using just `float` would suffice as int can be?

? ? ? ? return 'YES'? ?# converted to `float` so both `int`

? ? ? ? ? ? ? ? ? ? ? ?# and `float` wouldnot raise any error

? ? except ValueError:

? ? ? ? return 'NO'


df['Result'] = df['ID'].apply(numeric)

注意:float也處理科學(xué)記數(shù)法,float("1e6")-> 1000000.0。


test = pd.Series(['1e6', '1', 'a 10', '1E6'])

test.apply(numeric)


0? ? YES

1? ? YES

2? ? ?NO

3? ? YES

dtype: object


查看完整回答
反對(duì) 回復(fù) 2024-01-12
?
FFIVE

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

檢查是否ID包含non-digits并使用 反轉(zhuǎn)布爾選擇~。使用np.where, 分配選項(xiàng)


df['Result']=np.where(~df.ID.str.contains('(\D+)'),'Yes','N0')


     ID Result

0    3965    Yes

1    wyq8     N0

2  RO_123     N0

3    CMD_     N0

4    2976    Yes

正如@Cameron Riddell 所指出的。您還可以跳過(guò)布爾值反轉(zhuǎn)并執(zhí)行以下操作;


df['Result']=np.where(df.ID.str.contains('(\D+)'),'No','Yes')


查看完整回答
反對(duì) 回復(fù) 2024-01-12
?
眼眸繁星

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

您可以使用.isnumeric()方法:

df3["Result"]?=?df3["ID"].str.isnumeric().apply(lambda?x:?"No"?if?x?==?False?else?"Yes")


查看完整回答
反對(duì) 回復(fù) 2024-01-12
  • 3 回答
  • 0 關(guān)注
  • 214 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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