在获取Datetime数据时,有时候需要吧数字数据(如20200413)转化为时间序列,直接用parse转换时出现‘A value is trying to be set on a copy of a slice from a DataFrame’ 错误提示,我在网上看别人的解决方法,感觉没有说清楚,这个错误是因为Datefream数据使用=赋值时,传入变量的是原数据的映射,如果修改变量,则相当于修改原始数据,错误警告是提示不应该有此套娃行为。
错误代码如下:
import pandas as pd from dateutil.parser import parse xg = '000700' dt_factor = pd.read_csv(open(r'D:\python project\数据储存\%s stock_factor.csv' % xg), encoding='UTF-8', index_col=0) fac_max = dt_factor['adj_factor'].max() dt_factor['factor_q'] = dt_factor['adj_factor']/fac_max for i in dt_factor.index: dt_factor['trade_date'][i] = parse(str(dt_factor['trade_date'][i])).date() print(dt_factor)
这里的目的是为了将20200413(数据类型是int)转化为时间序列,使用了parse方法。
运行结果
D:/python project/text2.py:10: SettingWithCopyWarning:
A valu