利用pandas导入原始数据时,数据格式为object,需要进行转换:
TIMESTAMP列 -->> 日期格式
其余列 -->> 数字格式
原始数据:
日期:
利用pandas.datetime进行转化
同时,可以用pandas.to_timedelta转化成时间戳格式
data_original['TIMESTAMP'] = pd.to_datetime(data_original['TIMESTAMP'])
数字
以往使用astype强制转换:
data_original['column_2'] = data_original['column_2'].astype(float)
但此时会报错,astype无法对诸如“/,*,&”的特殊符号进行编辑。
改用to_numeric函数:
pandas.to_numeric(arg, errors, downcast)
其中,errors有三种选项(默认为raise):
ignore: 无效解析会返回原始值
raise: 无效解析会报错
coerce: 无效解析会返回NaN
downcast有四种选项(默认为None)
integer/singed: signed int dtype
unsigned: unsigned int dtype
float: float dtype
data_original['column_2'] = pd.to_numeric(data_original['column_2'], errors = 'coerce')
此时就能对其中一列数据进行正常修改。
对日期以外的所有数据进行修改,利用apply:
data_original[data_original.columns[1:]] = data_original[data_original.columns[1:]].apply(pd.to_numeric, errors = 'coerce')
得到完整的修改数据
也可以利用infer_objects函数让系统自动推断格式
data_original = data_original.infer_objects()