我有以下形式的列數據集:如何改善以下代碼在Python的性能
'< 1 year'
'10+ years'
'6 years'
etc
我需要它轉換爲整數格式,也就是'< 1年 - > 0,'10 +年' - > 10和'6年' - > 6等條目。有500,000條目。我寫了下面的腳本來清除它:
temp = data.X11
for i in range(len(temp)):
if ~is_nan(temp[i]):
if isinstance(temp[i], six.string_types):
b= temp[i].split(" ")
if len(b) == 3 and (b[0])=='<':
temp[i] = 0
elif len(b) == 2:
if b[0] == '10+':
temp[i] = 10
else:
temp[i] = int(b[0])
else:
if isinstance(temp[i], float):
temp[i] = math.floor(temp[i])
if isinstance(temp[i], int):
if temp[i] >= 10:
temp[i] = 10
elif temp[i] < 1 and temp[i] >= 0:
temp[i] = 0
elif temp[i] < 0:
temp[i] = -10
else:
pass
else:
temp[i] = -10
它的工作原理。但缺點是,它非常緩慢(花費數小時才能完成)。我的問題是如何提高此代碼的性能。
任何意見或幫助代碼片段將不勝感激。
感謝
感謝您的意見@QuentinRoy – user62198
我會試試看。字典解決方案(見下文)也需要很長時間。 – user62198