我正在努力解析熊猫中的日期时间。这是我简单的例子:嵌套熊猫数据帧中的解析日期时间
df.iloc[:10,10:]
Out[45]:
response_date revision scheduleClosedAt scheduleEventIndex scheduleId scheduleOpenedAt
0 {u'$date': u'2012-01-10T11:00:00.000+0000'} {u'Measure': 1} NaN NaN NaN NaN
1 {u'$date': u'2012-01-19T13:00:00.000+0000'} {u'Measure': 1} NaN NaN NaN NaN
2 {u'$date': u'2011-06-15T09:00:00.000+0100'} {u'Measure': 1} NaN NaN NaN NaN
3 {u'$date': u'2011-06-22T00:00:00.000+0100'} {u'Measure': 1} NaN NaN NaN NaN
4 {u'$date': u'2011-06-30T09:00:00.000+0100'} {u'Measure': 1} NaN NaN NaN NaN
5 {u'$date': u'2011-07-05T00:00:00.000+0100'} {u'Measure': 1} NaN NaN NaN NaN
6 {u'$date': u'2011-07-14T10:00:00.000+0100'} {u'Measure': 1} NaN NaN NaN NaN
7 {u'$date': u'2011-07-20T09:00:00.000+0100'} {u'Measure': 1} NaN NaN NaN NaN
8 {u'$date': u'2011-07-26T00:00:00.000+0100'} {u'Measure': 1} NaN NaN NaN NaN
9 {u'$date': u'2011-08-02T00:00:00.000+0100'} {u'Measure': 1} NaN NaN NaN NaN
我需要摆脱嵌套列“response_date”,并将其转换成正常的timedate,同时保持列名“response_date”/
我想:
>> df_respons = df.response_date.apply(pd.Series)
>> df_new_response = pd.to_datetime(df_respons)
,但得到的错误:
ValueError: to assemble mappings requires at least that [year, month, day] be specified: [day,month,year] is missing
处理嵌套达的任何简洁的方式时间到好看的专栏?
编辑
如何忽略遗漏值?
43025 {u'$date': u'2015-11-18T10:35:00.000+0000'}
43026 {u'$date': u'2015-11-18T14:23:00.000+0000'}
43027 {u'$date': u'2015-11-18T14:23:00.000+0000'}
43028 {u'$date': u'2015-11-18T15:20:00.000+0000'}
43029 {u'$date': u'2015-11-18T15:20:00.000+0000'}
43030 NaN
43031 NaN
43032 {u'$date': u'2015-11-19T08:00:00.000+0000'}
43033 {u'$date': u'2015-11-19T08:00:00.000+0000'}
43034 {u'$date': u'2015-11-24T08:00:00.000+0000'}
,让一个新的 '0' 栏:
0 response_date
43027 NaN 2015-11-18T14:23:00.000+0000
43028 NaN 2015-11-18T15:20:00.000+0000
43029 NaN 2015-11-18T15:20:00.000+0000
43030 NaN NaN
43031 NaN NaN
43032 NaN 2015-11-19T08:00:00.000+0000
43033 NaN 2015-11-19T08:00:00.000+0000
43034 NaN 2015-11-24T08:00:00.000+0000
太好了,谢谢!请参阅编辑的问题。 –
取决于你的意思是“忽略”;要使用NaN删除所有行,请使用'df.dropna()';通常,http://pandas.pydata.org/pandas-docs/stable/missing_data.html包含您可以执行的各种操作的概述。或者你想做的事是'df.apply(lambda row:pd.to_datetime(row ['response_date'] ['$ date'])if not pd.isnull(row ['response_date'])else np.nan ,axis = 1)'? – fuglede
谢谢。我无法从原始数据框中真正删除缺失的值。在最坏的情况下,我可以屏蔽缺失的值,执行你的建议,然后在适当的时间插入值,同时保留原始缺失值。 –