我有这个代码,它在前9次写入中工作,然后我得到了copywarning的设置,但它没有继续,我能做什么
df_day = df.copy()
date = df_day['Date']
df_day['Day'] = 'N/A'
x = 0
for str in df_day:
df_day['Day'][x] = datetime.datetime.strptime(date[x], '%d/%m/%Y').weekday()
x = x + 1
y = 0
for int in df_day['Day']:
if df_day['Day'][y] == 0:
df_day['Day'][y] = 'Monday'
y = y + 1
elif df_day['Day'][y] == 1:
df_day['Day'][y] = 'Tuesday'
y = y + 1
elif df_day['Day'][y] == 2:
df_day['Day'][y] = 'Wednesday'
y = y + 1
elif df_day['Day'][y] == 3:
df_day['Day'][y] = 'Thursday'
y = y + 1
elif df_day['Day'][y] == 4:
df_day['Day'][y] = 'Friday'
y = y + 1
elif df_day['Day'][y] == 5:
df_day['Day'][y] = 'Saturday'
y = y + 1
elif df_day['Day'][y] == 6:
df_day['Day'][y] = 'Sunday'
y = y + 1
df_day.head(15)
现在我有了这个,但它仍然只运行在前10行数据中!我想这和第一个for循环有关!(我知道它仍然是一个for循环,但它被请求为处于for循环中!)
x = 0
for int in df_day:
if x < length_data_day:
df_day.loc[x,'Day'] = datetime.datetime.strptime(date[x], '%d/%m/%Y').weekday()
x = x + 1
elif x == length_data_day:
end
df_day.head(15)
y = 0
for int in df_day['Day']:
if df_day.loc[y,'Day'] == 0:
df_day.loc[y,'Day'] = 'Monday'
y = y + 1
elif df_day.loc[y,'Day'] == 1:
df_day.loc[y,'Day'] = 'Tuesday'
y = y + 1
elif df_day.loc[y,'Day'] == 2:
df_day.loc[y,'Day'] = 'Wednesday'
y = y + 1
elif df_day.loc[y,'Day'] == 3:
df_day.loc[y,'Day'] = 'Thursday'
y = y + 1
elif df_day.loc[y,'Day'] == 4:
df_day.loc[y,'Day'] = 'Friday'
y = y + 1
elif df_day.loc[y,'Day'] == 5:
df_day.loc[y,'Day'] = 'Saturday'
y = y + 1
elif df_day.loc[y,'Day'] == 6:
df_day.loc[y,'Day'] = 'Sunday'
y = y + 1
else:
df_day.loc[y,'Day'] = 'Error'
y = y + 1
df_day.head(15)
您正在链接索引(例如,
dataframe[col_index][row_index]
)一般来说,您应该使用
dataframe.loc[row_index, col_index]
dataframe.iloc[row_index, col_index]
dataframe.at[row_index, col_index]
dataframe.iat[row_index, col_index]
但在您的情况下,您不需要任何这些。事实上,您很少需要在数据帧中循环
就你而言,我会:
或者,您可以更聪明地了解如何使用日期对象:
这给了我:
相关问题 更多 >
编程相关推荐