解决方案:pandas列存在空值的情况下,用ast.literal_eval转换

错误描述

由于pandas column中存在NaN,在用ast.literal_eval进行,出现ValueError: malformed node or string

错误原因

ast模块是帮助Python应用来处理抽象的语法解析的,如果输入不是合法的Python数据类型,则ast.literal_eval将引发异常。

根据文档,ast.literal_eval()的input只能是字符或节点,且只能由以下Python文本结构组成:字符串、数字、元组、列表、dicts、boolean和None。ps: pandas的NAN实质是float类型,所以报错。
在这里插入图片描述

解决方案

简易版

对每个实体都先设置为str数据类型

from ast import literal_eval
df['column_2'] 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pandas的pd.to_datetime()函数可以将数据转换为datetime格式。这个函数可以接受多种不同类型的输入,包括字符串、numpy的datetime64类型、python的datetime类型等。通过使用这个函数,你可以将数据转换为datetime格式的Pandas DataFrame或Series。 引用提供了一个例子: ``` import datetime import pandas as pd import numpy as np dti = pd.to_datetime(['1/1/2018', np.datetime64('2018-01-01'), datetime.datetime(2018, 1, 1)]) ``` 在这个例子里,pd.to_datetime()函数将一个包含不同日期格式的转换为datetime格式。结果会返回一个包含转换后的日期的Pandas Index。 引用提供了另一个例子: ``` import pandas as pd data = pd.read_csv('police.csv') data['stop_datetime'] = pd.to_datetime(data.stop_date) ``` 在这个例子里,pd.to_datetime()函数被用来将一个csv文件中的日期转换为datetime格式,并将转换后的结果存储在一个新的中。 如果你想要将一个DataFrame中的多个转换为datetime格式,你可以使用类似以下的语法: ``` pd.to_datetime(df[['year','month','day']]) ``` 引用提供了一个例子: ``` 0 2015-02-04 02:00:00 1 2016-03-05 03:00:00 dtype: datetime64 pd.to_datetime(df[['year','month','day']]) ``` 在这个例子里,pd.to_datetime()函数被用来将一个DataFrame中的year、month和day转换为datetime格式。 综上所述,pd.to_datetime()函数是Pandas库中用于将数据转换为datetime格式的一个重要函数。可以根据不同的输入类型进行转换,并且可以应用于整个DataFrame或Series以及特定的

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值