我有一個數據幀的路徑。任務是使用類似datetime.fromtimestamp(os.path.getmtime('PATH_HERE'))
成一個單獨的列熊貓矢量化而不是循環
import pandas as pd
import numpy as np
import os
df1 = pd.DataFrame({'Path' : ['C:\\Path1' ,'C:\\Path2', 'C:\\Path3']})
#for a MVCE use the below commented out code. WARNING!!! This WILL Create directories on your machine.
#for path in df1['Path']:
# os.mkdir(r'PUT_YOUR_PATH_HERE\\' + os.path.basename(path))
我可以用下面的做任務得到的最後修改時間爲文件夾,但它是一個緩慢的循環,如果我有很多文件夾:
for each_path in df1['Path']:
df1.loc[df1['Path'] == each_path, 'Last Modification Time'] = datetime.fromtimestamp(os.path.getmtime(each_path))
我該如何去引導這個過程來提高速度? os.path.getmtime
不能接受該系列。我在尋找類似:
df1['Last Modification Time'] = datetime.fromtimestamp(os.path.getmtime(df1['Path']))
'df1 ['Path'] .application(lambda x:datetime.fromtimestamp(os.path.getmtime(x)))'?? – Dark
如果'os.path.getmtime'不能接受這個系列,那麼廣播就無法完成,所以我不認爲你可以得到一個矢量化的解決方案。 – Dark
@Bharathshetty,應用方法*在我的短期測試中速度更快。每個循環約300ms。不幸的是,我害怕一個非矢量化的解決方案不可能 – MattR