1
想象我有混合文本值轉換列,無有效整數列表
data = pd.DataFrame([['1,2,3'], ['4,5,6'], [None]])
我希望值的列輸出爲:
[[1,2,3]], [[4,5,6]], [None]]
在其他字,將逗號分隔的字符串拆分爲列表,同時忽略None值。
此功能apply
正常工作:
def parse_text_vector(s):
if s is None:
return None
else:
return map(int, s.split(','))
如本例:
df = pd.DataFrame([['1,2,3'], ['4,5,6'], [None]])
result = df[0].apply(parse_text_vector)
但在數百萬行,這得相當緩慢。我希望通過做沿着
parse_text_vector(df.values)
線的東西,以提高運行時,但是這會導致:
In [61]: parse_text_vector(df.values)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-61-527d5f9f2b84> in <module>()
----> 1 parse_text_vector(df.values)
<ipython-input-49-09dcd8f24ab3> in parse_text_vector(s)
4 return None
5 else:
----> 6 return map(int, s.split(','))
AttributeError: 'numpy.ndarray' object has no attribute 'split'
我怎樣才能得到這個工作?或者以其他方式對其進行優化,以便處理我的百萬行數據幀不需要幾十分鐘?