2
我正在處理文本數據,我只想根據現有列填充新列。使用拆分來填充熊貓數據框中的列
示例:列sourceEncodedID
可能具有類似於a.b.c
的值,並且如果還有第二部分可用,我只想提取字符串的第二部分,即b
。下面是一些示例值:
sourceEncodedID Branch
a.b.c b
c.r.d r
a a
p p
要做到這一點,我想出了下面的代碼:
for i in range(0,20350):
if len(str(artifacts.sourceEncodedID[i]).split('.')) > 1:
artifacts['branch'][i] = str(artifacts.sourceEncodedID[i]).split('.')[1]
else:
artifacts['branch'][i] = str(artifacts.sourceEncodedID[i])
只有20K的數據幀行,但這段代碼需要幾分鐘到執行之前,永不完成和呈現我的瀏覽器無反應(我使用ipython notebook
)。我原以爲這會在幾秒鐘內運行。
在這段代碼中顯然有些東西我無法捕捉到嗎?我如何解決它?
感謝這麼多,它做的工作。您能否指出我的代碼中對我而言不明顯的愚蠢行爲? – Patthebug
@Patthebug,我已經更新了我的答案 - 請檢查 – MaxU
感謝您添加解釋,我很感激! 我想這只是一個有點令人沮喪的事情,一個人不得不知道熊貓的矢量化功能,並回到基礎知識花費你的時間。我同意矢量化解決方案更整潔,但你必須知道它們。一次一個功能! – Patthebug