【发布时间】:2020-02-01 02:02:24
【问题描述】:
我正在构建一个包含日常信息的数据框。我想对机器学习算法的日子进行一次热编码,但是我不确定如何找到每天包含 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 等。这就是为什么我要问如何只找到在 7 个中的每个条目中都有 NaN 的条目天,所以我只能将这些条目设置为 True。然后在最后将所有剩余的 NaN 设置为 false。
transformData() 是一个长方法,但这就是将条目写入数据帧的地方,但在那里也分配这些值不太实用。
【问题讨论】: