Я создаю фрейм данных, который содержит ежедневную информацию. Я хочу горячо кодировать дни для алгоритма машинного обучения, однако я не уверен, как найти записи, содержащие NaN для каждого дня, и установить для этого дня значение True для всех его записей. Затем в конце установите для всех оставшихся значений NaN значение False.
print("Starting to process files...")
#Init dataframe
df= pd.DataFrame(columns=["start", "close", "state", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"])
#Define days
weekdays = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]
#Then for each day of the week, creep through all the files and append entries to dataframe
for day in weekdays:
files = getFilesFromDir("datastream/"+day+"/")
print("Processing " + day)
for file in files:
print("Processing...")
content = readCSV(file)
df = transformData(df, content)
print("File finished.")
print(df.size)
break
#Done with this day, assign one-hot encoded value to its column and proceed to next day
df[day] = True
Проблема этого текущего решения заключается в том, что после того, как будет завершен вторник, всем записям понедельника также будет присвоено значение True для вторника и т. Д. c. Вот почему я спрашиваю, как найти только записи, которые имеют NaN в каждый из 7 дней, чтобы я мог установить только эти записи в True. Затем в самом конце установите все оставшиеся NaN на false.
transformData () - это длинный метод, но в нем записи записываются в фрейм данных, но было бы не слишком практично назначать эти значения там.