30 lines
1.4 KiB
Python
30 lines
1.4 KiB
Python
import pandas as pd
|
|
from pathlib import Path
|
|
|
|
# Конфигурация локальных путей
|
|
SOURCE_CSV = Path("../../dataset/DEAM/DEAM_Annotations/annotations/annotations averaged per song/song_level/static_annotations_averaged_songs_1_2000.csv")
|
|
OUTPUT_CSV = Path("../../dataset/DEAM/music_db.csv")
|
|
|
|
def prepare_deam_database():
|
|
if not SOURCE_CSV.exists():
|
|
print(f"Исходный файл аннотаций не найден: {SOURCE_CSV}")
|
|
return
|
|
|
|
print("Обработка разметки датасета DEAM...")
|
|
|
|
# Загрузка сырых данных с очисткой артефактов форматирования
|
|
raw_df = pd.read_csv(SOURCE_CSV, skipinitialspace=True)
|
|
|
|
# Экстракция координат пространства Рассела (Valence/Arousal)
|
|
processed_df = raw_df[['song_id', 'valence_mean', 'arousal_mean']].copy()
|
|
processed_df.columns = ['song_id', 'valence', 'arousal']
|
|
|
|
# Приведение идентификаторов к формату файловой системы (int)
|
|
processed_df['song_id'] = processed_df['song_id'].astype(int)
|
|
|
|
processed_df.to_csv(OUTPUT_CSV, index=False)
|
|
|
|
print(f"База успешно сформирована. Всего записей: {len(processed_df)}")
|
|
|
|
if __name__ == "__main__":
|
|
prepare_deam_database() |