【发布时间】:2018-11-23 04:24:27
【问题描述】:
我有一个数据框 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 在另一列中
【问题讨论】:
标签: python pandas pandas-groupby