【发布时间】:2017-02-01 05:14:12
【问题描述】:
我正在使用 pandas DataFrame 从 .json 文件导入数据,结果有点损坏:
>> print df
summary response_date
8.0 {u'$date': u'2009-02-19T10:54:00.000+0000'}
11.0 {u'$date': u'2009-02-24T11:23:45.000+0000'}
14.0 {u'$date': u'2009-03-03T17:55:07.000+0000'}
16.0 {u'$date': u'2009-03-10T12:23:04.000+0000'}
19.0 {u'$date': u'2009-03-17T17:19:55.000+0000'}
13.0 {u'$date': u'2009-03-25T15:10:52.000+0000'}
22.0 {u'$date': u'2009-04-02T16:57:31.000+0100'}
15.0 {u'$date': u'2009-04-08T22:29:09.000+0100'}
20.0 {u'$date': u'2009-04-16T18:14:20.000+0100'}
13.0 {u'$date': u'2009-04-29T10:47:06.000+0100'}
15.0 {u'$date': u'2009-05-06T13:45:45.000+0100'}
20.0 {u'$date': u'2009-05-26T10:41:52.000+0100'}
如何摆脱“日期”和其他混乱以创建带有日期和时间的普通列。要从我通常使用的 ISO8601 格式转换:
df.response_date = pd.to_datetime(df.response_date)
更新 1
summary response_date closed_date open_date
24.0 2011-10-15T00:00:00.000+0100 NaN NaN
24.0 2011-11-24T09:00:00.000+0000 NaN NaN
19.0 2011-10-01T09:00:00.000+0100 NaN NaN
25.0 2011-10-29T09:00:00.000+0100 NaN NaN
19.0 2011-10-08T09:00:00.000+0100 NaN NaN
-1.0 2011-11-09T17:20:00.000+0000 {u'$date': u'2011-11-16T15:20:00.000+0000'} {u'$date': u'2011-11-09T15:20:00.000+0000'}
-1.0 2011-11-16T17:20:00.000+0000 {u'$date': u'2011-11-23T15:20:00.000+0000'} {u'$date': u'2011-11-16T15:20:00.000+0000'}
-1.0 2011-11-23T17:20:00.000+0000 {u'$date': u'2011-11-30T15:20:00.000+0000'} {u'$date': u'2011-11-23T15:20:00.000+0000'}
-1.0 2011-11-30T17:20:00.000+0000 {u'$date': u'2011-12-07T15:20:00.000+0000'} {u'$date': u'2011-11-30T15:20:00.000+0000'}
所以,
>> df.response_date = pd.DataFrame(df.response_date.values.tolist())
工作得很好,但其他列包含 NaN 值,并且用“-1”插补没有帮助。
>> print type(df.ix[0,'scheduleClosedAt'])
<type 'int'>
更新 2
为什么这个(屏蔽)方法不起作用?
>> df.reset_index(inplace=True)
>> indx_nan_closed = df.closed_date.isnull()
>> df[~indx_nan_closed].closed_date = pd.DataFrame(df[~indx_nan_closed].closed_date.values.tolist())
这一行相当于上面的那一行,但带有掩码数组,所以我只想将此方法应用于非 NaN 值,但结果是我的数据框“df”保持不变。这很奇怪。
有什么想法吗?
【问题讨论】:
-
print type(df.ix[0,'response_date')是什么? -
@jezrael
标签: python json pandas dictionary dataframe