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

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

刪除熊貓列中字符串中的特定字符

刪除熊貓列中字符串中的特定字符

森欄 2022-10-05 09:23:43
我正在處理一個(gè)具有價(jià)格列的大型數(shù)據(jù)集(超過(guò)200萬(wàn)行x 10列)。這些值的格式包括一千點(diǎn)分隔符(例如 1.000),并且還使用點(diǎn)來(lái)分隔小數(shù)(例如 3.000.75 而不是 3000,75)。我想將列的格式設(shè)置為 float,但值中的 2 個(gè)點(diǎn)讓我頭疼。通常,為了簡(jiǎn)單起見,假設(shè)沒(méi)有超過(guò)1.000.000的數(shù)字,我會(huì)做這樣的事情for i in range (0,len(df)):    cell=str(df.iloc[i]['price'])    if cell.count(".")==2:        cell=cell.split(".")[0] + cell.split(".")[1] + '.' + cell.split(".")[2]然后,是的,將列的格式設(shè)置為浮點(diǎn)數(shù)。但我知道這遠(yuǎn)非最優(yōu)(循環(huán))。for我怎樣才能利用熊貓的力量來(lái)避免這里?for謝謝!
查看完整描述

3 回答

?
喵喵時(shí)光機(jī)

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

正如米尼奧所建議的那樣,使用正則表達(dá)式刪除它們。編碼和閱讀的一種簡(jiǎn)單方法是使用,這意味著所有非數(shù)字字符:\D

regex = r'\D'
df.price = df.price.str.replace(regex, '').astype(float)


查看完整回答
反對(duì) 回復(fù) 2022-10-05
?
白衣非少年

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

你可以嘗試這樣的事情:

df.price.str.replace(r'(\.)([0-9]{1,2})$', ',\\2')

也許你將不得不使用正則表達(dá)式部分,但這個(gè)函數(shù)是一種方法。


查看完整回答
反對(duì) 回復(fù) 2022-10-05
?
胡子哥哥

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

在您的情況下,對(duì)何時(shí)刪除點(diǎn)以及何時(shí)應(yīng)將點(diǎn)視為小數(shù)點(diǎn)存在疑問(wèn)。我對(duì)這個(gè)問(wèn)題的解決方案是刪除所有點(diǎn),然后在一千個(gè)點(diǎn)之后出現(xiàn)s,并保持小數(shù)點(diǎn)不變。下面的代碼可能會(huì)對(duì)您有所幫助。


cell = df['price']

cell = cell.astype('str')


def func(val):

    ret = ''

    for i in range(len(val)):

        if val[i] != '.' or i%4 != 0:

            ret += val[i]       


    return ret


output = pd.Series(map(func,cell))


output = output.astype('float')

print(output)

如果您遇到任何其他問(wèn)題,可以寫信給我。


查看完整回答
反對(duì) 回復(fù) 2022-10-05
  • 3 回答
  • 0 關(guān)注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報(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)