私はパスのデータフレームを持っています。タスクが別の列パンダループの代わりにベクトル化
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))
にdatetime.fromtimestamp(os.path.getmtime('PATH_HERE'))
のようなものを使用してフォルダの最終更新時刻を取得することです私は以下で作業を行うことができますが、私は多くのフォルダを持っている場合には、低速ループです:
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']。apply(lambda x:datetime.fromtimestamp(os.path.getmtime(x)))'? – Dark
'os.path.getmtime'がシリーズを受け入れることができない場合、放送はできませんので、ベクトル化された解決策を得ることはできません。 – Dark
@Bharathshetty、applyメソッド*は短時間のテストで*高速です。ループごとに約300ms。残念ながら、ベクトル化されていないソリューションが不可能であることを恐れていました。 – MattR