#python #csv #machine-learning
Вопрос:
Я работаю с большим количеством больших файлов (всего около 1 ТБ), и в настоящее время мне нужно проанализировать каждый файл (более 70 из них), и в то же время я хочу преобразовать их все в большой csv-файл для дальнейшей обработки.
Вот что у меня есть:
def create_database(filename):
# Import data
st = obspy.core.read(filename)
print ("Analyzing %s..."%filename)
for i in range(chunks):
st_temp=st.slice(st[0].stats.starttime i*300/chunks,st[0].stats.starttime (i 1)*300/chunks)
# 3 seconds
datas=[tr.data for tr in st_temp]
print(datas)
try:
# Save all features in dataframe
df_accel=pd.DataFrame([np.array(datas).flatten()],columns=cols)
# Adding time
df_accel['t_start']=st_temp[0].stats.starttime
del st_temp
# Writing to csv
if len(glob.glob('./FOLDER/database_SNIPPET.csv'))==0:
df_accel.to_csv('./FOLDER/database_SNIPPET.csv', columns=df.columns, index=False)
else:
df_accel.to_csv('./FOLDER/database_SNIPPET.csv', mode='a', columns=df.columns, index=False, header=False)
except:
None
del st
print ("... Done.")
return
Я заставил его распечатать массив, чтобы я знал, что он обрабатывает файлы (я делаю это с помощью jsut 3, чтобы я мог проверить, работает это или нет).
Затем, используя этот цикл, я пытаюсь проанализировать каждый файл и записать результат в виде csv-файла:
chunks = 100
filenames=[]
for filename in glob.glob("./FOLDER/FOLDER_WITH_BIG_FILES/*COMMMON_STRING*.seg2"):
if '(1)' not in filename and '(2)' not in filename and '(3)' not in filename:
filenames.append(filename)
warnings.simplefilter("ignore")
print ("Analyzing accelerometer data for %i files..."%len(filenames))
startTime = time.time()
for filename in filenames:
create_database(filename)
elapsedTime = time.time() - startTime
print ("... Done. It took %is."%elapsedTime )
Это выполняется успешно без каких-либо ошибок, но я не вижу, чтобы файл csv создавался в папке path. Да, код/файлы находятся по одному и тому же пути.
Нужно ли мне сначала создать пустой csv-файл?
Где я все испортил?
пример вывода:
Analyzing ./FOLDER/FOLDER_WITH_BIG_FILES/COMMON_STRING_1.seg2...
[array([ 1.6366858 , 1.6318611 , 1.5884378 , ..., 0.16190271,
0.42405063, 0.38062736], dtype=float32), array([-1.7364223, -1.1577998, -1.0870793, ..., -2.2362878, -2.2330732,
-2.3182595], dtype=float32), array([ 3.7339797, 3.809525 , 3.6761153, ..., 3.828813 , 4.000799 ,
и так далее. Для 1 файла это занимает немного секунд. Но как только у меня будет весь анализ в виде базы данных CSV, я смогу использовать его для построения модели ML.