筛选出Python数据帧中格式不正确的日期时间值
我有一个数据框,其中一列存储日期 但是,其中一些日期是格式正确的datetime对象,如筛选出Python数据帧中格式不正确的日期时间值,python,pandas,dataframe,datetime,plotly,Python,Pandas,Dataframe,Datetime,Plotly,我有一个数据框,其中一列存储日期 但是,其中一些日期是格式正确的datetime对象,如'2018-12-24 17:00:00',而其他日期则不是,并存储为'20181225' 当我尝试使用plotly绘制这些时,格式不正确的值被转换为历元日期,这是一个问题 是否有任何方法可以获得数据框的副本,其中只包含格式正确的日期行 我试着用 clean_dict= dailySum_df.where(dailySum_df[isinstance(dailySum_df['time'],datetime.
'2018-12-24 17:00:00'
,而其他日期则不是,并存储为'20181225'
当我尝试使用plotly绘制这些时,格式不正确的值被转换为历元日期,这是一个问题
是否有任何方法可以获得数据框的副本,其中只包含格式正确的日期行
我试着用
clean_dict= dailySum_df.where(dailySum_df[isinstance(dailySum_df['time'],datetime.datetime)])
方法,但由于“数组条件必须与self的形状相同”错误,它无法工作
dailySum_df = pd.DataFrame(list(cursors['dailySum']))
trace = go.Scatter(
x=dailySum_df['time'],
y=dailySum_df['countMessageIn']
)
data = [trace]
py.plot(data, filename='basic-line')
尝试使用dateutil.parser.parse和apply函数解析数据帧的dates列
尝试使用dateutil.parser.parse和apply函数解析数据帧的dates列
应用
dateutil.parser
,另请参见我的答案:
输入:
time countMessageIn
0 2018-12-24 17:00:00 1
1 20181225 2
2 no date at all 3
输出:
time countMessageIn
0 2018-12-24 17:00:00 1
1 2018-12-25 00:00:00 2
与Gustavo的解决方案不同,它可以处理完全没有可识别日期的行,并根据您的问题过滤掉这些行
如果原始时间列可能包含日期本身以外的其他文本,请包括所示的
fuzzy=True
参数。应用dateutil.parser
,另请参见我的答案:
输入:
time countMessageIn
0 2018-12-24 17:00:00 1
1 20181225 2
2 no date at all 3
输出:
time countMessageIn
0 2018-12-24 17:00:00 1
1 2018-12-25 00:00:00 2
与Gustavo的解决方案不同,它可以处理完全没有可识别日期的行,并根据您的问题过滤掉这些行
如果原始时间列可能包含日期之外的其他文本,请包括所示的
fuzzy=True
参数。谢谢,这很有效!很抱歉,我花了这么长时间才回复并接受。谢谢,这很有效!很抱歉,我花了这么长时间才回复并接受。