我有一个数据框 test
,包含3列 id, name, value
和列 test['values']
。下面是 test
的部分样例:
name values
0 impressions [{'value': 17686, 'end_time': '2018-06-12T07:0...
1 reach [{'value': 6294, 'end_time': '2018-06-12T07:00...
2 follower_count [{'value': 130, 'end_time': '2018-06-12T07:00:...
3 email_contacts [{'value': 1, 'end_time': '2018-06-12T07:00:00...
4 phone_call_clicks [{'value': 0, 'end_time': '2018-06-12T07:00:00...
5 text_message_clicks [{'value': 0, 'end_time': '2018-06-12T07:00:00...
6 get_directions_clicks [{'value': 0, 'end_time': '2018-06
测试值单元格看起来像这样:
[{'end_time': '2018-06-12T07:00:00+0000', 'value': 17686},
{'end_time': '2018-06-13T07:00:00+0000', 'value': 4064}]
我可以通过以下方式扩展它:
我可以通过以下方式扩展它:
test[['Values 1', 'Values 2']] = test['values'].apply(pd.Series)
test[['Date 1', 'Values 1']] = test['Values 1'].apply(pd.Series)
test[['Date 2', 'Values 2']] = test['Values 2'].apply(pd.Series)
test.drop(['values'], axis=1, inplace=True)
结果大致如下:
id name Values 1 Values 2 Date 1 Date 2
/insights/impressions/day impressions 17686 4064 2018-06-12T07:00:00+0000 2018-06-13T07:00:00+0000
/insights/reach/day reach 6294 2085 2018-06-12T07:00:00+0000 2018-06-13T07:00:00+0000
/insights/follower_count/day follower_count 130 37 2018-06-12T07:00:00+0000 2018-06-13T07:00:00+0000
我想知道: a. 是否有更快的方法来扩展字典列表。 b. 是否有一种方法可以将数据旋转,使值 1 和值 2 在一列中。日期 1 和日期 2 在另一列中。
[{'description': 'Total number of times this profile has been seen', 'id': 'XXXXXXXXXXXXXXX/insights/impressions/day', 'name': 'impressions', 'period': 'day', 'title': 'Impressions', 'values': [{'end_time': '2018-06-12T07:00:00+0000', 'value': 17686}, {'end_time': '2018-06-13T07:00:00+0000', 'value': 4064}]},
其他类别的数据也是按照这个格式继续的。 - Matt M